internal package
Foswiki
::Infix
See
PublishedAPI
for packages intended to be used by Plugin and Contrib authors, or
browse all packages
.
See also
Developing plugins
,
Developer's Bible
,
Technical Overview
Perl Module:
Child packages
Child packages
Foswiki::Infix::Error
- Class of errors used with Foswiki::Infix::Parser
Foswiki::Infix::Node
- Base class for node types generated by Infix::Parser (and its subclasses). This defines the interface used to construct nodes from the parser.
Foswiki::Infix::OP
- Base class of operators recognised by the Foswiki::Infix::Parser. Predefined fields in this object used by Foswiki::Infix::Parser are: *
name
- operator string. *
prec
- operator precedence, positive non-zero integer. Larger number
> higher precedence. * =arity
- set to 1 if this operator is unary, 2 for binary. Arity 0 is legal, should you ever need it. Use arity=2 and canfold=1 for n-ary operators. *
close
- used with bracket operators.
name
should be the open bracket string, and
close
the close bracket. The existance of
close
marks this as a bracket operator. *
casematters=
- indicates that the parser should check case in the operator name (i.e. treat 'AND' and 'and' as different). By default operators are case insensitive.
Note
that operator names must be caselessly unique i.e. you can't define 'AND' and 'and' as different operators in the same parser. Does not affect the interpretation of non-operator terminals (names). *
canfold
- means that adjacent nodes with identical operators can be folded together i.e. the operands of the second node can be pushed onto the parameter list of the first. This is used (for example) for comma lists. Other fields in the object can be used for other purposes. However field names in the hash starting with
InfixParser_
are reserved for use by the parser.
Foswiki::Infix::Parser
- A simple
LL(1) parser
that parses infix expressions with nonary, unary and binary operators specified using an operator table.
Questa pagina: System
>
Category
>
DeveloperDocumentationCategory
>
PerlDoc
Versione pagina:
21 Nov 2014,
ProjectContributor
Copyright © di chi contribuisce. Tutti i materiali presenti su questo sito sono di proprietà dei rispettivi autori.
Idee, richieste, problemi relativi a Leader.IT?
Invia un commento!