• DoctypeDeclaration{http://etl.sf.net/etl/doctype/0.2.1}:
    • systemId: "../grammars/EJ.g.etl"
    • context: "MethodContent"
  • 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: i
  • ForStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • initExpressions:
      • AssignmentOp{http://etl.sf.net/2006/samples/ej/0.1}:
        • leftHandSide:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: i
        • value:
          • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: 0
    • condition:
      • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
        • value1:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: i
        • value2:
          • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
            • accessed:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: a
            • feature:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: length
    • updateExpressions:
      • PostfixIncrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
        • value:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: i
    • body:
      • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
        • content:
          • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • ifThenPart:
              • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                • condition:
                  • EqualOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value1:
                      • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                        • functor:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: a
                        • args:
                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: i
                    • value2:
                      • NullReference{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: null
                • body:
                  • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                    • content:
                      • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • 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:
                    • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                      • summands:
                        • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • summands:
                            • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                              • summands:
                                • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: "a["
                              • summands:
                                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: i
                          • summands:
                            • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: "] = "
                      • summands:
                        • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • functor:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: a
                          • args:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: i
            • ContinueStatement{http://etl.sf.net/2006/samples/ej/0.1}:
      • ForStatement{http://etl.sf.net/2006/samples/ej/0.1}:
        • initVariableDeclaration:
          • 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: i
                • initialValue:
                  • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: 0
        • condition:
          • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
            • value1:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: i
            • value2:
              • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • accessed:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: a
                • feature:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: length
        • updateExpressions:
          • PostfixIncrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
            • value:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: i
        • body:
          • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
            • content:
              • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • ifThenPart:
                  • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                    • condition:
                      • EqualOp{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value1:
                          • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • functor:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: a
                            • args:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: i
                        • value2:
                          • NullReference{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value: null
                    • body:
                      • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                        • content:
                          • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • 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:
                        • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • summands:
                            • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                              • summands:
                                • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • summands:
                                    • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                      • value: "a["
                                  • summands:
                                    • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                      • value: i
                              • summands:
                                • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: "] = "
                          • summands:
                            • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                              • functor:
                                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: a
                              • args:
                                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: i
                • ContinueStatement{http://etl.sf.net/2006/samples/ej/0.1}:
          • ForStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • label:
              • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                • name: myLoop
            • initVariableDeclaration:
              • 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: i
                    • initialValue:
                      • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: 0
            • condition:
              • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • value1:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: i
                • value2:
                  • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • accessed:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: a
                    • feature:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: length
            • updateExpressions:
              • PostfixIncrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • value:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: i
            • body:
              • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                • content:
                  • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • ifThenPart:
                      • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                        • condition:
                          • EqualOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value1:
                              • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • functor:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: a
                                • args:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: i
                            • value2:
                              • NullReference{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: null
                        • body:
                          • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                            • content:
                              • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                                • label:
                                  • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • name: myLoop
                  • 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:
                          • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • summands:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • summands:
                                      • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • value: "a["
                                    • summands:
                                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • value: i
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "] = "
                            • summands:
                              • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • functor:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: a
                                • args:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: i
                  • ContinueStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • label:
                      • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                        • name: myLoop
          • ForeachStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • label:
              • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                • name: myLoop
            • parameter:
              • Parameter{http://etl.sf.net/2006/samples/ej/0.1}:
                • classifier:
                  • PrimitiveType{http://etl.sf.net/2006/samples/ej/0.1}:
                    • name: int
                • name:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: i
            • initial:
              • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: 0
            • limit:
              • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                • accessed:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: a
                • feature:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: length
            • body:
              • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                • content:
                  • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • ifThenPart:
                      • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                        • condition:
                          • EqualOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value1:
                              • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • functor:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: a
                                • args:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: i
                            • value2:
                              • NullReference{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: null
                        • body:
                          • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                            • content:
                              • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                                • label:
                                  • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • name: myLoop
                  • 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:
                          • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • summands:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • summands:
                                      • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • value: "a["
                                    • summands:
                                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • value: i
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "] = "
                            • summands:
                              • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • functor:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: a
                                • args:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: i
                  • ContinueStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • label:
                      • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                        • name: myLoop
          • 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: i
                • initialValue:
                  • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: 0
          • ForeachStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • parameter:
              • Parameter{http://etl.sf.net/2006/samples/ej/0.1}:
                • classifier:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: Object
                • name:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: o
            • collection:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: a
            • body:
              • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                • content:
                  • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • ifThenPart:
                      • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                        • condition:
                          • EqualOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value1:
                              • ApplySquareOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • functor:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: a
                                • args:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: i
                            • value2:
                              • NullReference{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: null
                        • body:
                          • MethodBlock{http://etl.sf.net/2006/samples/ej/0.1}:
                            • content:
                              • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                    • 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:
                            • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                              • summands:
                                • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • summands:
                                    • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                      • summands:
                                        • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                          • value: "a["
                                      • summands:
                                        • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                          • value: i
                                  • summands:
                                    • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                      • value: "] = "
                              • summands:
                                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                  • value: o
                    • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                      • expression:
                        • PostfixIncrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • value:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: i
                    • ContinueStatement{http://etl.sf.net/2006/samples/ej/0.1}:
              • ForeachStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • parameter:
                  • Parameter{http://etl.sf.net/2006/samples/ej/0.1}:
                    • classifier:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: Shape
                    • name:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: s
                • collection:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: shapes
                • 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: s
                                • feature:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: draw
              • WhileStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • condition:
                  • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value1:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: a
                    • value2:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: b
                • 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:
                                  • 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:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "b > a by "
                                • summands:
                                  • IdentityOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value:
                                      • MinusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • minuend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: b
                                        • subtrahend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: a
                      • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • expression:
                          • PostfixDecrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: b
              • WhileStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • label:
                  • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                    • name: myLoop
                • condition:
                  • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value1:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: a
                    • value2:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: b
                • 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:
                                  • 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:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "b > a by "
                                • summands:
                                  • IdentityOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value:
                                      • MinusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • minuend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: b
                                        • subtrahend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: a
                      • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • expression:
                          • PostfixDecrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: b
                      • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • ifThenPart:
                          • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                            • condition:
                              • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value1:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: b
                                • value2:
                                  • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: 0
                            • 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:
                                              • 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: "could not fall below floor"
                                  • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • label:
                                      • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • name: myLoop
              • DoWhileStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • 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:
                                  • 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:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "b > a by "
                                • summands:
                                  • IdentityOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value:
                                      • MinusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • minuend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: b
                                        • subtrahend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: a
                      • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • expression:
                          • PostfixDecrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: b
                • condition:
                  • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value1:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: a
                    • value2:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: b
              • DoWhileStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                • label:
                  • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                    • name: myLoop
                • 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:
                                  • 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:
                              • PlusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • summands:
                                  • StringLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: "b > a by "
                                • summands:
                                  • IdentityOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value:
                                      • MinusOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • minuend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: b
                                        • subtrahend:
                                          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                            • value: a
                      • ExpressionStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • expression:
                          • PostfixDecrementOp{http://etl.sf.net/2006/samples/ej/0.1}:
                            • value:
                              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value: b
                      • IfStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                        • ifThenPart:
                          • IfThenPart{http://etl.sf.net/2006/samples/ej/0.1}:
                            • condition:
                              • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                                • value1:
                                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: b
                                • value2:
                                  • IntegerLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • value: 0
                            • 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:
                                              • 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: "could not fall below floor"
                                  • BreakStatement{http://etl.sf.net/2006/samples/ej/0.1}:
                                    • label:
                                      • Label{http://etl.sf.net/2006/samples/ej/0.1}:
                                        • name: myLoop
                • condition:
                  • LessThenOp{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value1:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: a
                    • value2:
                      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                        • value: b
                   1: doctype "../grammars/EJ.g.etl" context "MethodContent";
                   2: // for loop
                   3: var int i;
                   4: for(i=0 : i<a.length : i++)
                   5: {
                   6:   if(a[i] == null)
                   7:   {
                   8:     break;
                   9:   };
                  10:   System.out.println("a["+i+"] = "+a[i]);
                  11:   continue;
                  12: };
                  13: for(var int i=0 : i<a.length : i++)
                  14: {
                  15:   if(a[i] == null)
                  16:   {
                  17:     break;
                  18:   };
                  19:   System.out.println("a["+i+"] = "+a[i]);
                  20:   continue;
                  21: };
                  22: // for loop with label
                  23: for myLoop (var int i=0 : i<a.length : i++)
                  24: {
                  25:   if(a[i] == null)
                  26:   {
                  27:     break myLoop;
                  28:   };
                  29:   System.out.println("a["+i+"] = "+a[i]);
                  30:   continue myLoop;
                  31: };
                  32: 
                  33: 
                  34: // foreach loop over integer range
                  35: foreach myLoop (int i from 0 to a.length)
                  36: {
                  37:   if(a[i] == null)
                  38:   {
                  39:     break myLoop;
                  40:   };
                  41:   System.out.println("a["+i+"] = "+a[i]);
                  42:   continue myLoop;
                  43: };
                  44: // foreach loop over array
                  45: var int i = 0;
                  46: foreach(Object o in a)
                  47: {
                  48:   if(a[i] == null)
                  49:   {
                  50:     break;
                  51:   };
                  52:   System.out.println("a["+ i +"] = "+o);
                  53:   i++;
                  54:   continue;
                  55: };
                  56: // foreach loop over collections
                  57: foreach(Shape s in shapes)
                  58: {
                  59:   s.draw();
                  60: };
                  61: // while loop
                  62: while(a<b)
                  63: {
                  64:   System.out.println("b > a by "+(b-a));
                  65:   b--; 
                  66: };
                  67: while myLoop (a < b)
                  68: {
                  69:   System.out.println("b > a by "+(b-a));
                  70:   b--; 
                  71:   if( b < 0)
                  72:   {
                  73:     System.out.println("could not fall below floor");
                  74:     break myLoop;
                  75:   }; 
                  76: };
                  77: 
                  78: do
                  79: {
                  80:   System.out.println("b > a by "+(b-a));
                  81:   b--; 
                  82: } while(a<b);
                  83: 
                  84: do myLoop 
                  85: {
                  86:   System.out.println("b > a by "+(b-a));
                  87:   b--; 
                  88:   if( b < 0)
                  89:   {
                  90:     System.out.println("could not fall below floor");
                  91:     break myLoop;
                  92:   }; 
                  93: } while (a < b);
                  94: