void DECL(out AST e) { SymDeclaring e1; AST e2 = null; StructDcel es = null; AST idval; List <AST> el = new List <AST>(); DCL(out e1, out idval); if (la.kind == 3 || la.kind == 10 || la.kind == 12) { if (la.kind == 10 || la.kind == 12) { ASSIG(out e2, idval); } else { Get(); AST structid = new SymReferencing(t.val); string idofstruct = t.val; if (la.kind == 10) { Get(); STRUCTDECL(out el); } es = new StructDcel(idval, el); es.structId = structid; e2 = new Assigning(structid, es); e1.id = idofstruct; } } e = new Decl(e1, e2); Expect(11); }
public abstract void Visit(StructDcel n);