public void GetSymbol() //метод класса лексический анализатор { intFSourceColSelection++; // продвигаем номер колонки if (intFSourceColSelection > strFSource[intFSourceRowSelection].Length - 1) { intFSourceRowSelection++; if (intFSourceRowSelection <= strFSource.Length - 1) { intFSourceColSelection = -1; chrFSelection = '\0'; enumFSelectionCharType = TCharType.EndRow; enumFState = TState.Continue; } else { chrFSelection = '\0'; enumFSelectionCharType = TCharType.EndText; enumFState = TState.Finish; } } else { chrFSelection = strFSource[intFSourceRowSelection][intFSourceColSelection]; //классификация прочитанной литеры if (chrFSelection == ' ') { enumFSelectionCharType = TCharType.Space; } else if (chrFSelection >= 'a' && chrFSelection <= 'd') { enumFSelectionCharType = TCharType.Letter; } else if (chrFSelection == '0' || chrFSelection == '1') { enumFSelectionCharType = TCharType.Digit; } else if (chrFSelection == '/') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == '*') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == ';' || chrFSelection == ',' || chrFSelection == '[' || chrFSelection == ']' || chrFSelection == '=' || chrFSelection == ':') { enumFSelectionCharType = TCharType.ReservedSymbol; } else { throw new System.Exception("Cимвол вне алфавита"); } enumFState = TState.Continue; } }
public void GetSymbol() { intFSourceColSelection++; if (intFSourceColSelection > strFSource[intFSourceRowSelection].Length - 1) { intFSourceRowSelection++; if (intFSourceRowSelection <= strFSource.Length - 1) { intFSourceColSelection = -1; chrFSelection = '\0'; enumFSelectionCharType = TCharType.EndRow; enumFState = TState.Continue; } else { chrFSelection = '\0'; enumFSelectionCharType = TCharType.EndText; enumFState = TState.Finish; } } else { chrFSelection = strFSource[intFSourceRowSelection][intFSourceColSelection]; if (chrFSelection == ' ') { enumFSelectionCharType = TCharType.Space; } else if (chrFSelection >= 'a' && chrFSelection <= 'd') { enumFSelectionCharType = TCharType.Letter; } else if (chrFSelection == '0' || chrFSelection == '1') { enumFSelectionCharType = TCharType.Digit; } else if (chrFSelection == '/') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == '*') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == 'S') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == 'A') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == 'B') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == '>' || chrFSelection == '<') { enumFSelectionCharType = TCharType.ReservedSymbol; } else if (chrFSelection == '(' || chrFSelection == ')' || chrFSelection == ':' || chrFSelection == '-' || chrFSelection == ',' || chrFSelection == '.') { enumFSelectionCharType = TCharType.ReservedSymbol; } else { throw new System.Exception("Cимвол вне алфавита"); } enumFState = TState.Continue; } }