Author: dr
Date: Wed Jan 30 16:51:02 2008
New Revision: 7265

Log:
- Added links in EBNF document.

Modified:
    trunk/Template/docs/EBNF.txt

Modified: trunk/Template/docs/EBNF.txt
==============================================================================
--- trunk/Template/docs/EBNF.txt [iso-8859-1] (original)
+++ trunk/Template/docs/EBNF.txt [iso-8859-1] Wed Jan 30 16:51:02 2008
@@ -8,227 +8,234 @@
 
 The template language starts with the non-terminal token: "Program".
 
-::
-
-  Program             ::= Code EOF
-
-  Code                ::= ( Text | Block )*
-
-  Text                ::= TextBlock
-                      |   LiteralBlock
-                      |   DelimiterBlock
-
-
-  Block               ::= CommentBlock 
-                      |   DeclarationBlock
-                      |   ModifyingBlock
-                      |   OutputBlock
-                      |   LiteralBlock
-                      |   CycleBlock
-                      |   LoopBlock
-                      |   CodeFlowBlock
+.. parsed-literal::
+
+  Program             ::= Code_ EOF
+
+  _`Code`                ::= ( Text_ | Block_ )*
+
+  _`Text`                ::= TextBlock_
+                      |   LiteralBlock_
+                      |   DelimiterBlock_
+
+
+  _`Block`               ::= CommentBlock_ 
+                      |   DeclarationBlock_
+                      |   ModifyingBlock_
+                      |   OutputBlock_
+                      |   LiteralBlock_
+                      |   CycleBlock_
+                      |   LoopBlock_
+                      |   CodeFlowBlock_
 
 Text blocks
 -----------
-::
-
-  TextBlock           ::= ( ~'{' | '\'! '{' )*
-
-  LiteralBlock        ::= '{' 'literal' '}' Graphic* '{' '/literal' '}'
-
-  DelimiterBlock      :==  '{ldelim}' | '{rdelim}'
+
+.. parsed-literal::
+
+  _`TextBlock`           ::= ( ~'{' | '\'! '{' )*
+
+  _`LiteralBlock`        ::= '{' 'literal' '}' Graphic_ * '{' '/literal' '}'
+
+  _`DelimiterBlock`      :==  '{ldelim}' | '{rdelim}'
 
 
 Blocks
 ------
-::
-
-  CommentBlock        ::= '{*' Graphic* '*}'
-
-  DeclarationBlock    ::= '{' 'var' SubDefineBlock '}'
-                      |   '{' 'cycle' SubDefineBlock '}' 
-                      |   '{' 'use' SubDefineBlock '}'
-
-  SubDefineBlock      ::= PrimaryVariable ( '=' Expression )? ( ',' 
SubDefineBlock )?
-
-  ModifyingBlock      ::= '{' SubAssignBlock (',' SubAssignBlock)* '}'
-
-  SubAssignBlock      ::= AssignmentExpr | IncrementExpr | DecrementExpr
-
-  AssignmentExpr      ::= PrimaryVariable ( '=' | CombinedAssignment) 
Expression
-
-  IncrementExpr       ::= ( ( '++' PrimaryVariable ) | ( PrimaryVariable '++' 
) )
-
-  DecrementExpr       ::= ( ( '--' PrimaryVariable ) | ( PrimaryVariable '--' 
) )
-
-  OutputBlock         ::= '{' Expression '}'
-
-  CycleBlock          ::= '{' 'increment' PrimaryVariable ( ',' 
PrimaryVariable )* '}'
-                      |   '{' 'decrement' PrimaryVariable ( ',' 
PrimaryVariable )* '}'
-                      |   '{' 'reset' PrimaryVariable ( ',' PrimaryVariable )* 
'}'
+
+.. parsed-literal::
+
+  _`CommentBlock`        ::= '{\*' Graphic_ * '\*}'
+
+  _`DeclarationBlock`    ::= '{' 'var' SubDefineBlock_ '}'
+                      |   '{' 'cycle' SubDefineBlock_ '}' 
+                      |   '{' 'use' SubDefineBlock_ '}'
+
+  _`SubDefineBlock`      ::= PrimaryVariable_ ( '=' Expression_ )? ( ',' 
SubDefineBlock_ )?
+
+  _`ModifyingBlock`      ::= '{' SubAssignBlock_ (',' SubAssignBlock_)* '}'
+
+  _`SubAssignBlock`      ::= AssignmentExpr_ | IncrementExpr_ | DecrementExpr_
+
+  _`AssignmentExpr`      ::= PrimaryVariable_ ( '=' | CombinedAssignment_) 
Expression_
+
+  _`IncrementExpr`       ::= ( ( '++' PrimaryVariable_ ) | ( PrimaryVariable 
'++' ) )
+
+  _`DecrementExpr`       ::= ( ( '--' PrimaryVariable_ ) | ( PrimaryVariable 
'--' ) )
+
+  _`OutputBlock`         ::= '{' Expression_ '}'
+
+  _`CycleBlock`          ::= '{' 'increment' PrimaryVariable_ ( ',' 
PrimaryVariable_ )* '}'
+                      |   '{' 'decrement' PrimaryVariable_ ( ',' 
PrimaryVariable_ )* '}'
+                      |   '{' 'reset' PrimaryVariable_ ( ',' PrimaryVariable_ 
)* '}'
 
 
 Loop control
 ------------
-::
-
-  LoopBlock           ::= ForeachStatement
+
+.. parsed-Literal::
+
+  _`LoopBlock`           ::= ForeachStatement
                       |   WhileStatement
 
-  ForeachStatement    ::= '{' 'foreach' Expression 'as' PrimaryVariable ('=>' 
PrimaryVariable)? (Cycle)* (OffsetAndLimit)? '}' Code '{' '/foreach' '}'
-
-  WhileStatement      ::= '{' 'while' Expression '}' Code '{' '/while' '}'
-
-  Cycle               ::= ('increment' | 'decrement') PrimaryVariable (',' 
PrimaryVariable)* 
-
-  OffsetAndLimit      ::= ('offset' Expression)? ('limit' Expression)?
+  _`ForeachStatement`    ::= '{' 'foreach' Expression_ 'as' PrimaryVariable_ 
('=>' PrimaryVariable_)? (Cycle_)* (OffsetAndLimit_)? '}' Code_ '{' '/foreach' 
'}'
+
+  _`WhileStatement`      ::= '{' 'while' Expression_ '}' Code_ '{' '/while' '}'
+
+  _`Cycle`               ::= ('increment' | 'decrement') PrimaryVariable_ (',' 
PrimaryVariable_)* 
+
+  _`OffsetAndLimit`      ::= ('offset' Expression_)? ('limit' Expression_)?
 
 
 Code flow control
 -----------------
-::
-
-  CodeFlowBlock       ::= IfStatement
-                      |   SwitchStatement
-                      |   IncludeStatement
-                      |   DelimiterStatement
+
+.. parsed-Literal::
+
+  _`CodeFlowBlock`       ::= IfStatement_
+                      |   SwitchStatement_
+                      |   IncludeStatement_
+                      |   DelimiterStatement_
                       |   '{break}'
                       |   '{skip}'
                       |   '{continue}'
-                      |   ReturnStatement
-
-
-  IfStatement         ::= '{' 'if' Expression '}' Code (ElseIf)* (Else)? '{' 
'/if' '}' 
-  ElseIf              ::= '{' 'elseif' Expression '}' Code
-  Else                ::= '{' 'else' '}' Code 
-
-  SwitchStatement     ::= '{' 'switch' Expression '}' (Case)* (DefaultCase)? 
'{' '/switch' '}'
-
-  Case                ::= '{' 'case' Literal ( ',' Literal)* '}' Code '{' 
'/case' '}'
-
-  DefaultCase         ::= '{' 'default' '}' Code '{' '/default' '}'
+                      |   ReturnStatement_
+
+
+  _`IfStatement`         ::= '{' 'if' Expression_ '}' Code_ (ElseIf_)* 
(Else_)? '{' '/if' '}' 
+  _`ElseIf`              ::= '{' 'elseif' Expression_ '}' Code_
+  _`Else`                ::= '{' 'else' '}' Code_ 
+
+  _`SwitchStatement`     ::= '{' 'switch' Expression_ '}' (Case_)* 
(DefaultCase_)? '{' '/switch' '}'
+
+  _`Case`                ::= '{' 'case' Literal_ ( ',' Literal_)* '}' Code_ 
'{' '/case' '}'
+
+  _`DefaultCase`         ::= '{' 'default' '}' Code_ '{' '/default' '}'
                      
-  IncludeStatement    ::= '{' 'include' Expression ('send' ExprAsPrimVarList)? 
('receive' PrimVarAsPrimVarList)? '}'
-
-  DelimiterStatement  ::= '{' 'delimiter' (modulo Expression ('is' 
Expression)? )? '}' Code '{' '/delimiter' '}'
-
-  ReturnStatement     ::= '{' 'return' ExprAsPrimVarList '}' 
-
-  ExprAsPrimVarList   ::=  ( Expression 'as' PrimaryVariable | PrimaryVariable 
) (',' ExprAsPrimVarList)?
-
-  PrimVarAsPrimVarList::=  PrimaryVariable ('as' PrimaryVariable)? (',' 
PrimVarAsPrimVarList)?
+  _`IncludeStatement`    ::= '{' 'include' Expression_ ('send' 
ExprAsPrimVarList_)? ('receive' PrimVarAsPrimVarList_)? '}'
+
+  _`DelimiterStatement`  ::= '{' 'delimiter' (modulo Expression_ ('is' 
Expression_)? )? '}' Code_ '{' '/delimiter' '}'
+
+  _`ReturnStatement`     ::= '{' 'return' ExprAsPrimVarList_ '}' 
+
+  _`ExprAsPrimVarList`   ::=  ( Expression_ 'as' PrimaryVariable_ | 
PrimaryVariable_ ) (',' ExprAsPrimVarList_)?
+
+  _`PrimVarAsPrimVarList`::=  PrimaryVariable_ ('as' PrimaryVariable_)? (',' 
PrimVarAsPrimVarList_)?
 
 
 
 Expression
 ----------
-::
-
-  Expression          ::= PreUnaryExpression (BinaryOperator Expression)?
-
-  PreUnaryExpression  ::= '++' PrimaryVariable
-                      |   '--' PrimaryVariable
-                      |   UnaryExpression
-                      |   Expression 'instanceof' Identifier 
-                      |   ArrayDeclaration
-
-  ArrayDeclaration    ::= 'array' '(' ( (Expression '=>')? Expression ( ',' 
Expression )* (',')? )? ')'
-                      |   Expression '..' Expression
-
-
-  UnaryExpression     ::= ( UnaryOperator )* PostFixExpression
-
-  PostFixExpression   ::= PrimaryVariable ( '++' | '--' )?
-                      |   Literal
-                      |   FunctionCall
-                      |   '(' Expression ')'
-
-
-  PrimaryVariable     ::= '$' Identifier ( '[' Expression ']' | '->' 
Expression )*
-
-  FunctionCall        ::= Identifier '(' (ParameterList)? ')'  
+
+.. parsed-Literal::
+
+  _`Expression`          ::= PreUnaryExpression_ (BinaryOperator_ Expression_)?
+
+  _`PreUnaryExpression`  ::= '++' PrimaryVariable_
+                      |   '--' PrimaryVariable_
+                      |   UnaryExpression_
+                      |   Expression_ 'instanceof' Identifier_
+                      |   ArrayDeclaration_
+
+  _`ArrayDeclaration`    ::= 'array' '(' ( (Expression_ '=>')? Expression_ ( 
',' Expression_ )* (',')? )? ')'
+                      |   Expression_ '..' Expression_
+
+
+  _`UnaryExpression`     ::= ( UnaryOperator_ )* PostFixExpression_
+
+  _`PostFixExpression`   ::= PrimaryVariable_ ( '++' | '--' )?
+                      |   Literal_
+                      |   FunctionCall_
+                      |   '(' Expression_ ')'
+
+
+  _`PrimaryVariable`     ::= '$' Identifier_ ( '[' Expression_ ']' | '->' 
Expression_ )*
+
+  _`FunctionCall`        ::= Identifier_ '(' (ParameterList_)? ')'  
                                                                   
-  ParameterList       ::= Expression ( ',' Expression )* 
-
-  Identifier          ::= Letter ( Letter | Digit | '_' )*
+  _`ParameterList`       ::= Expression_ ( ',' Expression_ )* 
+
+  _`Identifier`          ::= Letter_ ( Letter_ | Digit_ | '_' )*
 
 
 Basic literals
 --------------
-::
-
-  Literal              ::= NumeralLiteral 
-                       |   StringLiteral 
-                       |   BooleanLiteral
-                       |   NullLiteral
-
-  NumeralLiteral       ::=  HexLiteral | OctLiteral | FloatLiteral
-
-  HexLiteral           ::= '0x' HexDigit+
-
-  OctLiteral           ::= '0' OctDigit+
-
-  FloatLiteral         ::= NonZeroDigit Digit* ( '.' Digit+ )? (('e'|'E') 
('+'|'-')? Digit+)?
-
-  StringLiteral        ::= '"' Graphic* '"' 
-                       |   "'" Graphic* "'"
-
-  BooleanLiteral       ::= 'true'
+
+.. parsed-Literal::
+
+  _`Literal`              ::= NumeralLiteral_ 
+                       |   StringLiteral_ 
+                       |   BooleanLiteral_
+                       |   NullLiteral_
+
+  _`NumeralLiteral`       ::=  HexLiteral_ | OctLiteral_ | FloatLiteral_
+
+  _`HexLiteral`           ::= '0x' HexDigit_ +
+
+  _`OctLiteral`           ::= '0' OctDigit_ +
+
+  _`FloatLiteral`         ::= NonZeroDigit_ Digit_ * ( '.' Digit_ + )? 
(('e'|'E') ('+'|'-')? Digit_ + )?
+
+  _`StringLiteral`        ::= '"' Graphic_ * '"' 
+                       |   "'" Graphic_ * "'"
+
+  _`BooleanLiteral`       ::= 'true'
                        |   'false'
 
-  NullLiteral          ::= 'null'
+  _`NullLiteral`          ::= 'null'
 
 
 Lexicon
 -------
-::
-
-  Comment             ::= '//' Graphic* ( EOL | '}' )
-                      |   '/*' Graphic* '*/'
-
-  Graphic             ::= Digit | Letter | Blank | Operators | Assignment | 
CombinedAssignment | RemainingCharSet
-
-  EOL                 ::= end-of-line
-
-  EOF                 ::= end-of-file
-
-  Blank               ::= Tab | Space 
-
-  NewLine             ::= '\n'
-
-  Space               ::= ' '
-
-  Tab                 ::= '\t'
-
-  Letter              ::= 'a' ... 'z' | 'A' ... 'Z'  
-
-  Hexdigit            ::= '0' .. '9' | 'A' .. 'F'
-
-  Octdigit            ::= '0' .. '8'
-
-  NonZeroDigit        ::= '1' .. '9' 
-
-  Digit               ::= '0' | NonZeroDigit
-
-  Assignment          ::= '='
-
-  CombinedAssignment  ::= '+=' | '-='  | '*=' | '/=' | '%=' | '.=' 
-
-  Operators           ::= BinaryOperator | UnaryOperator | '++' | '--'
-
-  BinaryOperator      ::= ArithmeticOperator | ComparisonOperator | 
BooleanOperator | StringOperator
-
-  ArithmeticOperator  ::= '+'  | '-'   | '*' | '/' | '%' 
-
-  ComparisonOperator  ::= '==' | '===' | '!=' | '!==' | '<' | '<=' | '>' | 
'>=' 
-
-  BooleanOperator     ::= '&&' | '||'
-
-  StringOperator      ::= '.'
-
-  UnaryOperator       ::= '+'  | '-'   | '!'
-
-  RemainingCharSet    ::= '.' | ':' | ';' | ',' | '~' | '(' | ')' | '[' | ']' 
| '{' | '}' | '_' | '|' | "'" | '"' | '`' | '#' | '$' | '@'
+
+.. parsed-Literal::
+
+  _`Comment`             ::= '\/\/' Graphic_ * ( EOL_ | '}' )
+                      |   '/\*' Graphic_ * '\*/'
+
+  _`Graphic`             ::= Digit_ | Letter_ | Blank_ | Operators_ | 
Assignment_ | CombinedAssignment_ | RemainingCharSet_
+
+  _`EOL`                 ::= end-of-line
+
+  _`EOF`                 ::= end-of-file
+
+  _`Blank`               ::= Tab_ | Space_
+
+  _`NewLine`             ::= '\n'
+
+  _`Space`               ::= ' '
+
+  _`Tab`                 ::= '\t'
+
+  _`Letter`              ::= 'a' ... 'z' | 'A' ... 'Z'  
+
+  _`Hexdigit`            ::= '0' .. '9' | 'A' .. 'F'
+
+  _`Octdigit`            ::= '0' .. '8'
+
+  _`NonZeroDigit`        ::= '1' .. '9' 
+
+  _`Digit`               ::= '0' | NonZeroDigit_
+
+  _`Assignment`          ::= '='
+
+  _`CombinedAssignment`  ::= '+=' | '-='  | '\*=' | '/=' | '%=' | '.=' 
+
+  _`Operators`           ::= BinaryOperator_ | UnaryOperator_ | '++' | '--'
+
+  _`BinaryOperator`      ::= ArithmeticOperator_ | ComparisonOperator_ | 
BooleanOperator_ | StringOperator_
+
+  _`ArithmeticOperator`  ::= '+'  | '-'   | '*' | '/' | '%' 
+
+  _`ComparisonOperator`  ::= '==' | '===' | '!=' | '!==' | '<' | '<=' | '>' | 
'>=' 
+
+  _`BooleanOperator`     ::= '&&' | '||'
+
+  _`StringOperator`      ::= '.'
+
+  _`UnaryOperator`       ::= '+'  | '-'   | '!'
+
+  _`RemainingCharSet`    ::= '.' | ':' | ';' | ',' | '~' | '(' | ')' | '[' | 
']' | '{' | '}' | '_' | '|' | "'" | '"' | '`' | '#' | '$' | '@'
 
 
 


-- 
svn-components mailing list
[EMAIL PROTECTED]
http://lists.ez.no/mailman/listinfo/svn-components

Reply via email to