Создание простого лексического анализатора в Java

#java #lexical

#java #лексический

Вопрос:

Я создаю лексический анализатор, который должен считывать текстовые входные и выходные токены для базового «созданного» языка и должен выводить токен при вызове. Я бы хотел, чтобы он различал идентификаторы, константы и т.д. из списка, который я предварительно определяю.

Мне нужно прочитать текстовый файл, используя входной поток. Цикл while будет перебирать символы по отдельности, но мне нужно, чтобы он распознал, являются ли сканируемые символы идентификатором или ‘ ‘ ‘-‘ ‘*’ ‘/’ и т.д… каков наилучший способ сделать это?

Я довольно новичок в программировании, поэтому буду признателен за любые советы о том, как это построить. большое спасибо за любые ответы

Ответ №1:

Не пытайтесь написать свой собственный лексер / анализатор.

Проще использовать генератор лексеров / синтаксических анализаторов, такой как ANTLR или SableCC.

Ответ №2:

Этот StreamTokenizer класс, вероятно, поможет вам больше всего. Он будет считывать и различать идентификаторы, числа и строки. Вы также можете настроить его для идентификации операторов, таких как , * , и т.д.

Комментарии:

1. 1 для старого доброго. StreamTokenizer Здесь есть пример.