public Iterator( Lexer lexer )
 {
     myLexer = lexer;
     // TODO: this is not very optimal - couldnt we do it with enumerator as well?
     myTokens = myLexer.Lex().ToList();
     myCurrent = -1;
 }
 internal void Read( TextReader reader )
 {
     myCaptions = new List<Caption>();
     
     var lexer = new Lexer( reader.ReadToEnd() );
     var parser = new Parser( lexer, this );
     parser.Parse();
 }
 public Parser( Lexer lexer, DotLangPureDocument document )
 {
     myIterator = new Iterator( lexer );
     myDocument = document;
 }