protected override bool Parse(DBlockNode tempBlock, DParser p) { if (p.laKind == DTokens.CloseCurlyBrace) { p.Step(); /*if (metaDecls.Count > 0) * metaDecls.RemoveAt (metaDecls.Count - 1);*/ return(true); } // Enum bodies if (tempBlock is DEnum) { if (p.laKind == DTokens.Comma) { p.Step(); } var laBackup = p.la; p.EnumValue(tempBlock as DEnum); if (p.la == laBackup) { return(false); } } else // Normal class/module bodies { if (p.laKind == DTokens.Module) { tempBlock.Add(p.ModuleDeclaration()); if (p.IsEOF) { return(false); } } p.DeclDef(tempBlock); } return(true); }
protected override bool Parse(BlockStatement tempBlockStmt, DParser p) { if (p.laKind == DTokens.CloseCurlyBrace) { p.Step(); /*if (metaDecls.Count > 0) * metaDecls.RemoveAt (metaDecls.Count - 1);*/ return(true); } var stmt = p.Statement(true, false, tempParentBlock, tempBlockStmt); if (stmt != null) { tempBlockStmt.Add(stmt); } else { p.Step(); } return(true); }