Exemplo n.º 1
0
 internal override Tree.Statement Gen(InfixGenerator lg)
 {
     return Tree.Ast.Block(
         Tree.Ast.Empty(_start),
         _body != null ? _body.Gen(lg) : Tree.Ast.Empty(),
         Tree.Ast.Empty(_end)
     );
 }
Exemplo n.º 2
0
 internal override Tree.Expression Gen(InfixGenerator lg)
 {
     return Tree.Ast.Convert(
         Tree.Ast.Constant(
             _value
         ),
         typeof(object)
     );
 }
Exemplo n.º 3
0
 internal override Tree.Statement Gen(InfixGenerator lg)
 {
     return Tree.Ast.Statement(
         Span,
         Tree.Ast.Call(
             typeof(InfixOps).GetMethod("Visible"),
             _expression.Gen(lg)
         )
     );
 }
Exemplo n.º 4
0
        internal override Tree.Expression Gen(InfixGenerator lg)
        {
            Operators op = DlrOperator(_op);

            return Tree.Ast.Action.Operator(
                op,
                typeof(object),
                _left.Gen(lg),
                _right.Gen(lg)
            );
        }
Exemplo n.º 5
0
 internal override Tree.Statement Gen(InfixGenerator lg)
 {
     if (_statements != null)
     {
         Tree.Statement[] statements = new Tree.Statement[_statements.Length];
         for (int i = 0; i < statements.Length; i++)
         {
             statements[i] = _statements[i].Gen(lg);
         }
         return Tree.Ast.Block(
             statements
         );
     }
     else
     {
         return Tree.Ast.Empty();
     }
 }
Exemplo n.º 6
0
 internal abstract Tree.Statement Gen(InfixGenerator gen);
Exemplo n.º 7
0
 internal virtual Tree.Statement GenSet(SourceSpan span, InfixGenerator lg, Operators op, Tree.Expression right)
 {
     throw new InvalidOperationException("Cannot assign to " + this.GetType().Name);
 }
Exemplo n.º 8
0
 internal abstract Tree.Expression Gen(InfixGenerator lg);