| Token.Error => WriteLine("Ошибка ввода!");
| Token.Error => WriteLine("Ошибка ввода!");
Макрос foreach вам уже знаком, однако в этот раз используется интересная возможность данного макроса, о которой я еще не упоминал. Дело в том, что макрос foreach организован весьма нетривиально. В частности, он позволяет использовать сокращенную форму сопоставления с образцом. Следующий код из функции readInput:
Новая версия функции readInput передает считанную из консоли строку (переменная inputString) в функцию lexer. Функция lexer, как было описано раньше, разбирает строку и преобразует ее в список лексем. Этот список помещается в переменную lexemes. Далее элементы этого списка перебираются с помощью цикла foreach.
| Token.Error => WriteLine("Ошибка ввода!");
В прошлом разделе была описана функция lexer, производящая лексический разбор введенного в консоль текста. Это еще не полный калькулятор, но имеет смысл увидеть и протестировать результат работы этой функции. Для этого нужно изменить функцию readInput (приведенную в одном из предыдущих разделов):
Язык NemerleЧасть 3Автор: Источник: Опубликовано: 25.07.2010Версия текста: 1.0 Вывод результата лексического разбора на консоль
Язык Nemerle P PP PP P PP PP PPPОценить P
Комментариев нет:
Отправить комментарий