• 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}:
    • documentation:
      • DocumentationLine{http://etl.sf.net/etl/grammar/0.2.1}:
        • text: /// This is an main grammar that imports expression grammar
      • DocumentationLine{http://etl.sf.net/etl/grammar/0.2.1}:
        • text: /// In its turn it imported from expression grammar. The cycle
      • DocumentationLine{http://etl.sf.net/etl/grammar/0.2.1}:
        • text: /// is here to make life interesting.
    • name:
      • net
      • sf
      • etl
      • tests
      • data
      • imports
      • MainGrammar
    • 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: m
        • uri: "http://etl.sf.net/2006/samples/imports/Main/0.1"
      • GrammarImport{http://etl.sf.net/etl/grammar/0.2.1}:
        • name: expr
        • systemId: "ExpressionGrammar.g.etl"
      • Context{http://etl.sf.net/etl/grammar/0.2.1}:
        • defaultModifier:
          • Modifier{http://etl.sf.net/etl/grammar/0.2.1}:
            • value: default
        • name: Statements
        • content:
          • ContextImport{http://etl.sf.net/etl/grammar/0.2.1}:
            • localName: expressions
            • contextName: Expressions
            • grammarName: expr
          • Statement{http://etl.sf.net/etl/grammar/0.2.1}:
            • name: LetStatement
            • 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: let
                      • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                        • name: name
                        • operator: =
                        • expression:
                          • IdentifierOp{http://etl.sf.net/etl/grammar/0.2.1}:
                        • KeywordStatement{http://etl.sf.net/etl/grammar/0.2.1}:
                          • text: =
                        • Let{http://etl.sf.net/etl/grammar/0.2.1}:
                          • name: value
                          • operator: =
                          • expression:
                            • ExpressionRef{http://etl.sf.net/etl/grammar/0.2.1}:
                              • context: expressions
            • 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}:
                      • context: expressions
         1: doctype public "-//IDN etl.sf.net//ETL//Grammar 0.2.1";
         2: /// This is an main grammar that imports expression grammar
         3: /// In its turn it imported from expression grammar. The cycle
         4: /// is here to make life interesting.
         5: grammar net.sf.etl.tests.data.imports.MainGrammar {
         6: 	namespace default m = "http://etl.sf.net/2006/samples/imports/Main/0.1";
         7: 	import expr = "ExpressionGrammar.g.etl";
         8: 	
         9: 	context default Statements {
        10: 		import expressions = Expressions from expr;
        11: 		
        12: 		statement LetStatement {
        13: 			% let {
        14: 				@ name = identifier;
        15: 			} % = {
        16: 				@ value = expression(expressions);
        17: 			};
        18: 		};
        19: 
        20: 		statement ExpressionStatement {
        21: 			@ value = expression(expressions);
        22: 		};
        23: 	};
        24: };	
        25: