Пример #1
0
 private static AstNode ParseList(TokenStream stream)
 {
     stream.Expect (TokenClass.OpenBracket);
     ListExpression ret = new ListExpression (stream.Location);
     while (!stream.Match (TokenClass.CloseBracket)) {
         AstNode expr = ParseExpression (stream);
         if (stream.Accept (TokenClass.Keyword, "for")) {
             string ident = stream.Expect (TokenClass.Identifier).Value;
             stream.Expect (TokenClass.Keyword, "in");
             AstNode iterator = ParseExpression (stream);
             AstNode predicate = null;
             if (stream.Accept (TokenClass.Keyword, "when")) {
                 predicate = ParseExpression (stream);
             }
             stream.Expect (TokenClass.CloseBracket);
             return new ListCompExpression (expr.Location, expr, ident, iterator, predicate);
         }
         ret.Add (expr);
         if (!stream.Accept (TokenClass.Comma)) {
             break;
         }
     }
     stream.Expect (TokenClass.CloseBracket);
     return ret;
 }
Пример #2
0
 public void Accept(ListExpression list)
 {
     visitSubnodes (list);
     methodBuilder.EmitInstruction (list.Location, Opcode.BuildList, list.Children.Count);
 }
Пример #3
0
		public override void Accept (ListExpression list)
		{
			list.VisitChildren (this);
			methodBuilder.EmitInstruction (list.Location, Opcode.BuildList, list.Children.Count);
		}
Пример #4
0
 public void Accept(ListExpression list)
 {
     list.Visit (functionCompiler);
 }
Пример #5
0
		public override void Accept (ListExpression list)
		{
			list.Visit (this);
		}
Пример #6
0
 public virtual void Accept(ListExpression list)
 {
 }
Пример #7
0
 public void Accept(ListExpression list)
 {
     list.VisitChildren (this);
 }
Пример #8
0
 public void Accept(ListExpression list)
 {
 }