About Pass Files

A pass file holds the NLP++ code and rules associated with a Pattern or Recursive pass type. Five zones divide a pass file and are ordered as follows:




Contains user-defined NLP++ function definitions.


Contains NLP++ code that is independent of rule matching.


Selects nodes of the parse tree. Rules will match only against the phrases immediately under the selected nodes.


Contains nested minipasses called Recurse Regions. Each Recurse Region is named and contains a Grammar Region. Rule elements in the Grammar Zone can invoke these named rule sets.


Contains the main Grammar Region of the current pass file.

Optional Zones

A minimal pass file may consist solely of a Code Zone or a Grammar Zone.

If absent, the Context Zone defaults to the selector


which traverses the phrase immediately below the root of the parse tree, invoking the rule matcher on each node of the phrase.

Pass File Markers

The '@' sign is a reserved character that indicates the start of a region (e.g., @CODE) or a selector (e.g., @NODES).

To indicate the end of a region, the name of the region preceded by two '@' signs is used. The end of a Code Region is indicated by @@CODE. End markers are optional in most cases.

A lone @@ marker indicates the end of a rule, e.g.,

  _NP <- _NOUN @@

Case Sensitivity of Pass File Markers

Pass file markers are case-insensitive.  A marker such as @PRE can be written as @pre.  

Note: Unlike pass file markers, NLP++ functions and actions are case-sensitive.  


See Also

Code Zone
Context Zone

Minipass Zone

Grammar Zone