SemErr() 공개 메소드

public SemErr ( string msg ) : void
msg string
리턴 void
예제 #1
0
        public void sendError(string errorMessage)
        {
            this.virtualMachine.setErrorMessage(errorMessage);
            parser.SemErr(errorMessage);

            errorsFound = true;
        }
예제 #2
0
        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);
        }
예제 #3
0
        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));
        }
예제 #4
0
 /// <summary>
 /// Raise runtime error at VM.
 /// </summary>
 /// <param name="msg">Message.</param>
 public void SetRuntimeError(string msg)
 {
     _parser.SemErr(msg);
 }