public void sendError(string errorMessage) { this.virtualMachine.setErrorMessage(errorMessage); parser.SemErr(errorMessage); errorsFound = true; }
public Symbol NewSym(int typ, string name, int line) { if (name.Length == 2 && name[0] == '"') { parser.SemErr("empty token not allowed"); name = "???"; } Symbol sym = new Symbol(typ, name, line); switch (typ) { case Node.t: sym.n = terminals.Count; terminals.Add(sym); break; case Node.pr: pragmas.Add(sym); break; case Node.nt: sym.n = nonterminals.Count; nonterminals.Add(sym); break; } return(sym); }
internal static NumericConstantNode Create(Parser parser, string tokenValue) { double d; if (TryParse(tokenValue, out d)) { return(new NumericConstantNode(d)); } parser.SemErr("invalid numeric constant"); return(new NumericConstantNode(double.NaN)); }
/// <summary> /// Raise runtime error at VM. /// </summary> /// <param name="msg">Message.</param> public void SetRuntimeError(string msg) { _parser.SemErr(msg); }