示例#1
0
    void operator_declaration(operator_declaration ast, ArrayList list)
    {
        InputElement op;

        if (ast.op is unary_declarator)
        {
            op = ((unary_declarator)ast.op).op;
        }
        else if (ast.op is binary_declarator)
        {
            op = ((binary_declarator)ast.op).op;
        }
        else if (ast.op is implicit_declarator)
        {
            op = ((implicit_declarator)ast.op).id1;
        }
        else if (ast.op is explicit_declarator)
        {
            op = ((explicit_declarator)ast.op).id1;
        }
        else
        {
            throw new ArgumentException();
        }
        list.Add(new Pair(op.str, ast));
    }
示例#2
0
 public virtual void operator_declaration(operator_declaration ast)
 {
     if (ast.block != null)
     {
         statement(ast.block);
     }
 }
示例#3
0
 override public void operator_declaration(operator_declaration ast)
 {
     if (ast.sym.IsAny("abstract", "extern") == 0 && ast.block == null)
     {
         ast.block = mk_return(ast.op.ty, ast.sym);
         ast.block.link(ast);
     }
     base.operator_declaration(ast);
 }
示例#4
0
 virtual public void operator_declaration(operator_declaration ast, int indent)
 {
     EmitattributeSectionList(ast.attrs, indent);
     EmitModifiers(ast.mods, indent, " ");
     visit(ast.op);
     if (ast.block != null)
     {
         statement(ast.block, indent + 1);
     }
 }