Esempio n. 1
0
        public static Token LogError(string fileName, Token token, string message, int lineNo)
        {
            int col = 0;

            if (token != null)
            {
                col = token.Col;
            }
            else
            {
                if (LastToken != null)
                {
                    if (LastToken.Next != null)
                    {
                        col = LastToken.Col;
                    }
                    else
                    {
                        col = LastToken.Col;
                    }
                }
            }
            if (lineNo >= 0)
            {
                ErrorTable.Add(fileName, currentLine, token, message);
            }
//            OnErrorLogged(SourceDocument, new LogErrorEventArgs(token, message, col, lineNo));
            if (token != null)
            {
                return(token.Next);
            }
            return(token);
        }
Esempio n. 2
0
        public static Symbol Add(string fileName, int line, Token token, string name, int value)
        {
            if (Labels.Exists(x => x.FileName == fileName && x.Name == name))
            {
                Symbol s1 = new Symbol(fileName, name, token, value, -1);
                s1.UsedAtLines.Add(new UsedAt(fileName, token.Line, token));
                Labels.Add(s1);
                ErrorTable.Add(fileName, line, token, "Duplicate Label");
                return(null);
            }


            Symbol label = new Symbol(fileName, name, token, value, line);

            Labels.Add(label);
            return(label);
        }