internal override void Parse(ObjWastTranspiler transpiler) { if (char.IsDigit(transpiler.PeekSignificant())) { long number = transpiler.ParseLong(); arguments.Add(number); } else if (transpiler.PeekSignificant() == '$') { string identifier = transpiler.ParseIdentifier(); arguments.Add(new ObjWastIdentifier(identifier)); } }
internal override ObjWastTranspilerContext GetContext(string statement, ObjWastTranspiler transpiler) { string instructionName = statement; if (transpiler.PeekSignificant() == '.') { instructionName += transpiler.Read(); instructionName += transpiler.ParseName(); } return(Create(() => new ObjWastInstructionContext(this, instructionName))); }
internal override void Parse(ObjWastTranspiler transpiler) { string instructionName = transpiler.ParseName(); if (transpiler.PeekSignificant() == '.') { instructionName += transpiler.Read(); instructionName += transpiler.ParseName(); } var context = Create(() => new ObjWastInstructionContext(this, instructionName)); context.Parse(transpiler); }