[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The EBNF syntax for treecc input files uses the following lexical tokens:
IDENTIFIER ::= <A-Za-z_> { <A-Za-z0-9_> } STRING ::= '"' <anything that does not include '"'> '"' | "'" <anything that does not include "'"> "'" LITERAL_DEFNS ::= "%{" <anything except "%}"> "%}" LITERAL_END ::= "%%" <any character sequence until EOF> LITERAL_CODE ::= '{' <anything with matched '{' and '}'> '}' |
In addition, anything that begins with "%" in the following syntax is a lexical keyword.
The EBNF syntax is as follows:
File ::= { Declaration } Declaration ::= Node | Operation | OperationCase | Option | Enum | Literal | Header | Output | Common | Include Node ::= %node IDENTIFIER [ IDENTIFIER ] { NodeFlag } [ '=' Fields ] NodeFlag ::= %abstract | %typedef Fields ::= '{' { Field } '}' Field ::= [ %nocreate ] TypeAndName [ '=' LITERAL_CODE ] ';' TypeAndName ::= Type [ IDENTIFIER ] Type ::= TypeName | Type '*' | Type '&' | Type '[' ']' TypeName ::= IDENTIFIER { IDENTIFIER } Operation ::= %operation { OperFlag } Type [ ClassName ] IDENTIFIER '(' [ Params ] ')' [ '=' LITERAL_CODE ] [ ';' ] OperFlag ::= %virtual | %inline | %split ClassName ::= IDENTIFIER "::" Params ::= Param { ',' Param } Param ::= TypeAndName | '[' TypeAndName ']' OperationCase ::= OperationHead { ',' OperationHead } LITERAL_CODE OperationHead ::= IDENTIFIER '(' [ TypeList ] ')' TypeList ::= IDENTIFIER { ',' IDENTIFIER } Option ::= %option IDENTIFIER [ '=' Value ] Value ::= IDENTIFIER | STRING Enum ::= %enum IDENTIFIER '=' '{' EnumBody [ ',' ] '}' EnumBody ::= IDENTIFIER { ',' IDENTIFIER } Literal ::= { LiteralFlag } (LITERAL_DEFNS | LITERAL_END) LiteralFlag ::= %both | %decls | %end Header ::= %header STRING Output ::= %output STRING Common ::= %common Include ::= %include [ %readonly ] STRING |
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Klaus Treichel on January, 18 2009 using texi2html 1.78.