• DoctypeDeclaration{http://etl.sf.net/etl/doctype/0.2.1}:
    • systemId: "MainGrammar.g.etl"
  • LetStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
    • name: a
    • value:
      • IntegerLiteral{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
        • value: 5
  • LetStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
    • name: b
    • value:
      • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
        • name: a
  • ExpressionStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
    • value:
      • PlusOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
        • summands:
          • PlusOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
            • summands:
              • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                • name: a
            • summands:
              • DivideOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                • dividend:
                  • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                    • name: b
                • divisor:
                  • IntegerLiteral{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                    • value: 2
        • summands:
          • BlockExpression{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
            • content:
              • LetStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
                • name: c
                • value:
                  • IntegerLiteral{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                    • value: 3
              • ExpressionStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
                • value:
                  • MultiplyOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                    • multipliers:
                      • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                        • name: c
                    • multipliers:
                      • BlockExpression{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                        • content:
                          • ExpressionStatement{http://etl.sf.net/2006/samples/imports/Main/0.1}:
                            • value:
                              • PlusOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                                • summands:
                                  • MinusOp{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                                    • minuend:
                                      • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                                        • name: a
                                    • subtrahend:
                                      • Identifier{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                                        • name: b
                                • summands:
                                  • IntegerLiteral{http://etl.sf.net/2006/samples/imports/Expression/0.1}:
                                    • value: 1
     1: doctype "MainGrammar.g.etl";
     2: 
     3: /// This doc comment should be ignored
     4: let a = 5;
     5: let b = a;
     6: // There is no round brackets in the grammar yet. So blocks are used.
     7: a + b / 2 + {let c = 3; c * {a-b+1;}; };
     8: