Exemple #1
0
        public static void CheckWord(string word, int line, SymbolTable sti, SymbolTable stc, ProgramInternalForm pif)
        {
            if (word != "")
            {
                if (isReservedWord(word))
                {
                    //int code;
                    //reservedWords.TryGetValue(word, out code);

                    pif.Add(codeTable[word], -1, -1);
                }
                else if (isSeparator(word))
                {
                    pif.Add(codeTable[word], -1, -1);
                }
                else if (isOperator(word))
                {
                    pif.Add(codeTable[word], -1, -1);
                }
                else if (isIdentifier(word))
                {
                    CodePositionPair p = sti.Add(new Token(word), 0);
                    pif.Add(p);
                }
                else if (isConstant(word))
                {
                    CodePositionPair p = stc.Add(new Token(word), 1);
                    pif.Add(p);
                }
                else
                {
                    throw new Exception("Error at line " + line + ": unknown word \"" + word + "\"");
                }
            }
        }
 public void Add(CodePositionPair p)
 {
     program.Add(p);
 }