Changeset 9696 for branches/HeuristicLab.Problems.GPDL/SyntaxAnalyzer
- Timestamp:
- 07/04/13 18:05:17 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified branches/HeuristicLab.Problems.GPDL/SyntaxAnalyzer/GPDef.atg ¶
r9430 r9696 5 5 digit = '0'..'9'. 6 6 whiteSpace = CHR(9) + EOL IGNORE. /* ' ' ignored by default */ 7 7 8 8 COMMENTS 9 9 FROM '/*' TO '*/' NESTED. … … 14 14 'SEM'. 'MAXIMIZE'. 'MINIMIZE'. 'TERMINALS'. 'CONSTRAINTS'. 'INIT'. 'CODE'. 15 15 'IN'. 'SET'. 'RANGE'. 16 16 17 17 TOKENS 18 18 '='. '|'. '.'. '('. ')'. '['. ']'. '{'. '}'. '>>'. '..'. 19 19 20 20 TOKEN CLASSES 21 21 ident = letter {letter | digit}. 22 22 23 23 PRAGMAS 24 24 source = '<<' SEM <<for (; ; ) { … … 46 46 } 47 47 }>> 48 . 48 . 49 49 NONTERMINALS 50 50 GPDefSyntaxAnalyzer. … … 52 52 RuleDef. SynExpr. SynTerm. SynFact. TerminalDecl. 53 53 ConstraintDef. ConstraintRule. SetDefinition. 54 54 55 55 RULES 56 56 GPDefSyntaxAnalyzer = 57 57 'PROBLEM' ident 58 59 58 ['CODE' /* SourceText */] 59 ['INIT' /* SourceText */] 60 60 'NONTERMINALS' { NonterminalDecl } 61 61 'TERMINALS' { TerminalDecl } 62 62 'RULES' { RuleDef } 63 ('MAXIMIZE' | 'MINIMIZE') /* SourceText */ 63 ('MAXIMIZE' | 'MINIMIZE') /* SourceText */ 64 64 'END' ident '.'. 65 66 67 SemDecl = 'LOCAL' /* SourceText */ 65 66 67 SemDecl = 'LOCAL' /* SourceText */ 68 68 . 69 70 SemAction = 'SEM' /* SourceText */ 69 70 SemAction = 'SEM' /* SourceText */ 71 71 . 72 73 NonterminalDecl = ident /* FormalAttrList */ '.' 74 75 76 72 73 NonterminalDecl = ident /* FormalAttrList */ '.' 77 74 . 78 79 TerminalDecl = ident /* FormalAttrList */ 75 76 TerminalDecl = ident /* FormalAttrList */ 80 77 [ 'CONSTRAINTS' ConstraintDef ] 81 '.' 78 '.' 82 79 . 83 80 84 81 ConstraintDef = { ConstraintRule }. 85 82 ConstraintRule = ident 'IN' SetDefinition . 86 83 SetDefinition = 87 84 'SET' /* SourceText */ 88 85 | 'RANGE' /* SourceText */ '..' /* SourceText */ 89 86 . 90 91 RuleDef = ident /* FormalAttrList */ '=' [SemDecl] SynExpr '.' 87 88 RuleDef = ident /* FormalAttrList */ '=' [SemDecl] SynExpr '.' 92 89 . 93 94 SynExpr = SynTerm {'|' SynTerm} 90 91 SynExpr = SynTerm {'|' SynTerm} 95 92 . 96 97 SynTerm = SynFact {SynFact} 93 94 SynTerm = SynFact {SynFact} 98 95 . 99 96 100 97 SynFact = 101 ident /* ActualAttrList */ 102 | 'EPS' 103 | '(' SynExpr ')' 104 | '[' SynExpr ']' 105 | '{' SynExpr '}' 106 | SemAction 98 ident /* ActualAttrList */ 99 | 'EPS' 100 | '(' SynExpr ')' 101 | '[' SynExpr ']' 102 | '{' SynExpr '}' 103 | SemAction 107 104 . 108 105
Note: See TracChangeset
for help on using the changeset viewer.