• DoctypeDeclaration{http://etl.sf.net/etl/doctype/0.2.1}:
    • publicId: "-//IDN etl.sf.net//ETL//Grammar 0.2.1"
  • Grammar{http://etl.sf.net/etl/grammar/0.2.1}:
    • name:
      • calculator
      • CalculatorBasic
    • content:
      • Namespace{http://etl.sf.net/etl/grammar/0.2.1}:
        • defaultModifier:
          • Modifier{http://etl.sf.net/etl/grammar/0.2.1}:
            • value: default
        • prefix: t
        • uri: "http://etl.sf.net/samples/calculator"
      • Context{http://etl.sf.net/etl/grammar/0.2.1}:
        • defaultModifier:
          • Modifier{http://etl.sf.net/etl/grammar/0.2.1}:
            • value: default
        • name: Expressions
        • content:
          • OperatorDefinition{http://etl.sf.net/etl/grammar/0.2.1}:
            • isComposite:
              • Modifier{http://etl.sf.net/etl/grammar/0.2.1}:
                • value: composite
            • name: NumberLiteral
            • associativity: f
            • syntax:
              • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                • name: value
                • operator: =
                • expression:
                  • ChoiceOp{http://etl.sf.net/etl/grammar/0.2.1}:
                    • options:
                      • FloatOp{http://etl.sf.net/etl/grammar/0.2.1}:
                      • options:
                        • IntegerOp{http://etl.sf.net/etl/grammar/0.2.1}:
              • OperatorDefinition{http://etl.sf.net/etl/grammar/0.2.1}:
                • isComposite:
                  • Modifier{http://etl.sf.net/etl/grammar/0.2.1}:
                    • value: composite
                • name: StringValue
                • associativity: f
                • syntax:
                  • ExpressionStatement{http://etl.sf.net/etl/grammar/0.2.1}:
                    • syntax:
                      • ObjectOp{http://etl.sf.net/etl/grammar/0.2.1}:
                        • name:
                          • ObjectName{http://etl.sf.net/etl/grammar/0.2.1}:
                            • prefix: t
                            • name: StringLiteral
                        • syntax:
                          • Sequence{http://etl.sf.net/etl/grammar/0.2.1}:
                            • syntax:
                              • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                                • name: value
                                • operator: =
                                • expression:
                                  • StringOp{http://etl.sf.net/etl/grammar/0.2.1}:
                                    • quote: '"'
              • Statement{http://etl.sf.net/etl/grammar/0.2.1}:
                • name: PrintStatement
                • syntax:
                  • ExpressionStatement{http://etl.sf.net/etl/grammar/0.2.1}:
                    • syntax:
                      • Sequence{http://etl.sf.net/etl/grammar/0.2.1}:
                        • syntax:
                          • KeywordStatement{http://etl.sf.net/etl/grammar/0.2.1}:
                            • text: print
                  • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                    • name: values
                    • operator: +=
                    • expression:
                      • ListOp{http://etl.sf.net/etl/grammar/0.2.1}:
                        • separator: ,
                        • syntax:
                          • Sequence{http://etl.sf.net/etl/grammar/0.2.1}:
                            • syntax:
                              • ExpressionStatement{http://etl.sf.net/etl/grammar/0.2.1}:
                                • syntax:
                                  • ExpressionRef{http://etl.sf.net/etl/grammar/0.2.1}:
                • Statement{http://etl.sf.net/etl/grammar/0.2.1}:
                  • name: ExpressionStatement
                  • syntax:
                    • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                      • name: value
                      • operator: =
                      • expression:
                        • ExpressionRef{http://etl.sf.net/etl/grammar/0.2.1}:
               1: doctype public "-//IDN etl.sf.net//ETL//Grammar 0.2.1";
               2: grammar calculator.CalculatorBasic {
               3:     namespace default t = "http://etl.sf.net/samples/calculator";
               4:     context default Expressions {
               5:         op composite NumberLiteral(f) {
               6:             @ value = float | integer;
               7:         };
               8:         op composite StringValue(f) {
               9:             ^ t:StringLiteral {
              10:                 @ value = string(quote='"');
              11:             };
              12:         };
              13:         statement PrintStatement {
              14:             % print;
              15:             @ values += list , {
              16:                 expression;
              17:             };
              18:         };
              19:         statement ExpressionStatement {
              20:             @ value = expression;
              21:         };
              22:     };
              23: };