• DoctypeDeclaration{http://etl.sf.net/etl/doctype/0.2.1}:
    • systemId: "../grammars/EJ.g.etl"
    • context: "MethodContent"
  • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
    • content:
      • LocalVarStatement{http://etl.sf.net/2006/samples/ej/0.1}:
        • classifier:
          • PrimitiveType{http://etl.sf.net/2006/samples/ej/0.1}:
            • name: int
        • variables:
          • Variable{http://etl.sf.net/2006/samples/ej/0.1}:
            • name:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: test
            • initialValue:
              • UnaryMinusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • value:
                  • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: 1
      • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
        • content:
          • LocalVarStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • finalModifier:
              • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: final
            • classifier:
              • PrimitiveType{http://etl.sf.net/2006/samples/ej/0.1}:
                • name: int
            • variables:
              • Variable{http://etl.sf.net/2006/samples/ej/0.1}:
                • name:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: test2
                • initialValue:
                  • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • summands:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: test
                    • summands:
                      • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: 1
  • TryStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • body:
      • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
        • content:
          • SynchronizedStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • value:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: object
            • body:
              • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                • content:
                  • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • expression:
                      • ApplyRoundOp{http://etl.sf.net/2006/samples/ej/0.1}:
                        • functor:
                          • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • accessed:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: object
                            • feature:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: wait
    • catchPart:
      • CatchPart{http://etl.sf.net/2006/samples/ej/0.1}:
        • specification:
          • Parameter{http://etl.sf.net/2006/samples/ej/0.1}:
            • finalModifier:
              • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: final
            • classifier:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: Exception
            • name:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: ex
        • body:
          • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
            • content:
              • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • expression:
                  • ApplyRoundOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • functor:
                      • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                        • accessed:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: ex
                        • feature:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: printStackTrace
    • finallyPart:
      • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
        • content:
          • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • expression:
              • ApplyRoundOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • functor:
                  • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • accessed:
                      • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                        • accessed:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: System
                        • feature:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: out
                    • feature:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: println
                • args:
                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: "Scope left"
  • MethodClassifier{http://etl.sf.net/2006/samples/ej/0.1}:
    • classifier:
      • InterfaceStatement{http://etl.sf.net/2006/samples/ej/0.1}:
        • name:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: a
        • contents:
          • MethodStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • returnType:
              • PrimitiveType{http://etl.sf.net/2006/samples/ej/0.1}:
                • name: void
            • name:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: test
  • MethodClassifier{http://etl.sf.net/2006/samples/ej/0.1}:
    • classifier:
      • ClassStatement{http://etl.sf.net/2006/samples/ej/0.1}:
        • name:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: b
        • implementedTypes:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: a
        • contents:
          • MethodStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • returnType:
              • PrimitiveType{http://etl.sf.net/2006/samples/ej/0.1}:
                • name: void
            • name:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: test
            • body:
              • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
    • MethodClassifier{http://etl.sf.net/2006/samples/ej/0.1}:
      • classifier:
        • EnumStatement{http://etl.sf.net/2006/samples/ej/0.1}:
          • name:
            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
              • value: c
          • contents:
            • EnumLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
              • name:
                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                  • value: q
            • EnumLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
              • name:
                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                  • value: w
            • EnumLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
              • name:
                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                  • value: e
         1: doctype "../grammars/EJ.g.etl" context "MethodContent";
         2: // scopes
         3: {
         4:   var int test = -1;
         5:   {
         6:     var final int test2 = test + 1;
         7:   };
         8: };
         9: // try and synchronized blocks
        10: try
        11: {
        12:   synchronized(object)
        13:   {
        14:     object.wait();
        15:   };
        16: }
        17: catch(final Exception ex)
        18: {
        19:   ex.printStackTrace();
        20: }
        21: finally
        22: {
        23:   System.out.println("Scope left");
        24: };
        25: // classifiers
        26: interface a
        27: {
        28:   to void test();
        29: };
        30: class b implements a
        31: {
        32:   to void test(){};
        33: };
        34: enum c { literal q; literal w; literal e;};