void nsSecurityHeaderParser::Header() { Directive(); while (Accept(';')) { Directive(); } }
Directive OPCodes::getDirective(string code, int numReserved) { if (code == "START") { return Directive(code, 0); } else if (code == "BYTE") { return Directive(code, 1); } else if (code == "WORD") { return Directive(code, 3); } else if (code == "RESB") { return Directive(code, 1 * numReserved); } else if (code == "RESW") { return Directive(code, 3 * numReserved); } else if (code == "END") { return Directive(code, 0); } else if (code == "BASE") { return Directive(code, 0); } else if (code == "NOBASE") { return Directive(code, 0); } else return Directive("ERROR",0); }
template <typename Visitor> void enumerateFields_gen(DirectiveModule obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.name(),"name"); vis(obj.hsailMajor(),"hsailMajor"); vis(obj.hsailMinor(),"hsailMinor"); vis(obj.profile(),"profile"); vis(obj.machineModel(),"machineModel"); vis(obj.defaultFloatRound(),"defaultFloatRound"); }
template <typename Visitor> void enumerateFields_gen(DirectiveExecutable obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.name(),"name"); vis(obj.outArgCount(),"outArgCount"); vis(obj.inArgCount(),"inArgCount"); vis(obj.firstInArg(),"firstInArg"); vis(obj.firstCodeBlockEntry(),"firstCodeBlockEntry"); vis(obj.nextModuleEntry(),"nextModuleEntry"); enumerateFields(obj.modifier(), vis); vis(obj.linkage(),"linkage"); }
template <typename Visitor> void enumerateFields_gen(DirectiveVariable obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.name(),"name"); vis(obj.init(),"init"); vis(obj.type(),"type"); vis(obj.segment(),"segment"); vis(obj.align(),"align"); enumerateFields(obj.dim(), vis); enumerateFields(obj.modifier(), vis); vis(obj.linkage(),"linkage"); vis(obj.allocation(),"allocation"); }
bool AsmFile::Read() { bool rv = true; AsmExpr::ReInit(); parser->Init(); bigEndian = parser->IsBigEndian(); FPF::SetBigEndian(bigEndian); Instruction::SetBigEndian(bigEndian); listing.SetBigEndian(bigEndian); while (!lexer.AtEof()) { bool inInstruction = false; try { if (GetKeyword() == Lexer::openbr) { Directive(); thisLabel = NULL; } else if (parser->MatchesOpcode(GetToken()->GetChars())) { NoAbsolute(); NeedSection(); inInstruction = true; int lineno = preProcessor.GetMainLineNo(); Instruction *ins = parser->Parse(lexer.GetRestOfLine(), currentSection->GetPC()); if (lineno >= 0) listing.Add(ins, lineno, preProcessor.InMacro()); NextToken(); currentSection->InsertInstruction(ins); thisLabel = NULL; } else { int lineno = preProcessor.GetMainLineNo(); std::string name = GetId(); DoLabel(name, lineno); } } catch(std::runtime_error *e) { Errors::Error(e->what()); delete e; rv = false; if (inInstruction) NextToken(); else lexer.SkipPastEol(); } } for (std::map<std::string, std::string>::iterator it = exports.begin(); it != exports.end(); ++it) { if (labels[it->first] == NULL) { Errors::Error(std::string("Undefined export symbol '") + it->first + "'"); rv = false; } else { labels[it->first]->SetPublic(true); } } for (std::set<std::string>::iterator it = globals.begin(); it != globals.end(); ++it) { if (labels[*it] == NULL) { Errors::Error(std::string("Undefined public '") + *it + "'"); rv = false; } else { labels[*it]->SetPublic(true); } } return rv && !Errors::ErrorCount(); }
template <typename Visitor> void enumerateFields_gen(DirectivePragma obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.operands(),"operands"); }
template <typename Visitor> void enumerateFields_gen(DirectiveNone obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); }
template <typename Visitor> void enumerateFields_gen(DirectiveLoc obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.filename(),"filename"); vis(obj.line(),"line"); vis(obj.column(),"column"); }
template <typename Visitor> void enumerateFields_gen(DirectiveLabel obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.name(),"name"); }
template <typename Visitor> void enumerateFields_gen(DirectiveFbarrier obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.name(),"name"); enumerateFields(obj.modifier(), vis); vis(obj.linkage(),"linkage"); }
template <typename Visitor> void enumerateFields_gen(DirectiveControl obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); vis(obj.control(),"control"); vis(obj.operands(),"operands"); }
template <typename Visitor> void enumerateFields_gen(DirectiveArgBlockStart obj, Visitor & vis) { enumerateFields_gen(Directive(obj), vis); }