• DoctypeDeclaration{http://etl.sf.net/etl/doctype/0.2.1}:
    • systemId: "../grammars/EJ.g.etl"
  • PackageStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • name:
      • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: a
  • PackageStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • name:
      • 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: a
            • feature:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • quotedValue: q'b'
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: c
  • ImportStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • importedPackage:
      • 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: java
            • feature:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: util
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: List
  • ImportStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • allModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: all
    • importedPackage:
      • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
        • accessed:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: java
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: io
  • ImportStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • staticModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: static
    • importedPackage:
      • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
        • accessed:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: Integer
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: toString
  • ImportStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • staticModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: static
    • allModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: all
    • importedPackage:
      • 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: java
            • feature:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: lang
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: Math
  • ImportStatement{http://etl.sf.net/2006/samples/ej/0.1}:
    • allModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: all
    • staticModifier:
      • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
        • value: static
    • importedPackage:
      • 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: java
            • feature:
              • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: lang
        • feature:
          • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
            • value: Math
  • TopLevelClassifier{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
  • TopLevelClassifier{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:
          • FieldStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • visibilityModifier:
              • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: private
            • staticModifier:
              • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: static
            • 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: boolean
            • variables:
              • Variable{http://etl.sf.net/2006/samples/ej/0.1}:
                • name:
                  • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: DEBUG
                • initialValue:
                  • BooleanLiteral{http://etl.sf.net/2006/samples/ej/0.1}:
                    • value: false
          • MethodStatement{http://etl.sf.net/2006/samples/ej/0.1}:
            • visibilityModifier:
              • Modifier{http://etl.sf.net/2006/samples/ej/0.1}:
                • value: public
            • 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}:
    • TopLevelClassifier{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
    • TopLevelClassifier{http://etl.sf.net/2006/samples/ej/0.1}:
      • classifier:
        • AttributeDefinition{http://etl.sf.net/2006/samples/ej/0.1}:
          • attributeSets:
            • AttributeSet{http://etl.sf.net/2006/samples/ej/0.1}:
              • attributes:
                • ApplyRoundOp{http://etl.sf.net/2006/samples/ej/0.1}:
                  • functor:
                    • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                      • value: Target
                  • args:
                    • ArrayConstructor{http://etl.sf.net/2006/samples/ej/0.1}:
                      • values:
                        • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • accessed:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: ElementType
                          • feature:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: METHOD
                        • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • accessed:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: ElementType
                          • feature:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: FIELD
                        • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                          • accessed:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: ElementType
                          • feature:
                            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                              • value: TYPE
          • name:
            • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
              • value: TODO
          • contents:
            • FieldStatement{http://etl.sf.net/2006/samples/ej/0.1}:
              • classifier:
                • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                  • value: String
              • variables:
                • Variable{http://etl.sf.net/2006/samples/ej/0.1}:
                  • name:
                    • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                      • value: text
            • FieldStatement{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: level
                  • initialValue:
                    • AccessOp{http://etl.sf.net/2006/samples/ej/0.1}:
                      • accessed:
                        • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                          • value: Level
                      • feature:
                        • Identifier{http://etl.sf.net/2006/samples/ej/0.1}:
                          • value: SEVERE
         1: doctype "../grammars/EJ.g.etl";
         2: package a;
         3: package a.q'b'.c;
         4: import java.util.List;
         5: import all java.io;
         6: import static Integer.toString;
         7: import static all java.lang.Math;
         8: import all static java.lang.Math;
         9: interface a {
        10: 	to void test();
        11: };
        12: class b implements a {
        13: 	var private static final boolean DEBUG=false;
        14: 	to public void test(){};
        15: };
        16: enum c { literal q; literal w; literal e;};
        17: 
        18: @[Target([ElementType.METHOD,ElementType.FIELD,ElementType.TYPE])]
        19: attribute TODO {
        20: 	var String text;
        21: 	var int level = Level.SEVERE;
        22: };