Лексический анализатор языка j8b

Обзор реализации

Лексический анализатор (лексер) полностью реализован и поддерживает все необходимые конструкции Java-подобного языка для 8-битных микроконтроллеров.

Ключевые особенности:

Типы токенов

Тип токена Примеры Класс реализации
Ключевые слова class, if, while, return TKeyword
Числа 123, 0xAB, 0b1010, 3.14 TNumber
Строки "Hello", "Escaped\nstring" TString
Символы 'A', '\n', '\'' TChar
Операторы +, -, *, /, ==, !=, += TOpearator
Разделители () {} [] ; , . .. TDelimiter
Метки label: TLabel
Специальные нотные записи #p m/8e5-e5-e5 TNote

Пример работы лексера

// Пример входного кода
class Led {
    private byte pin;
    public void on() {
        HAL.GPIO.write(pin, HIGH);
    }
}

Будет разбит на токены:

KEYWORD(class) ID(Led) DELIMITER({)
KEYWORD(private) KEYWORD(byte) ID(pin) DELIMITER(;)
KEYWORD(public) KEYWORD(void) ID(on) DELIMITER(() DELIMITER()) DELIMITER({)
ID(HAL) DELIMITER(.) ID(GPIO) DELIMITER(.) ID(write) DELIMITER(() 
ID(pin) DELIMITER(,) ID(HIGH) DELIMITER()) DELIMITER(;)
DELIMITER(}) DELIMITER(})

Полнота реализации

Лексический анализатор полностью покрывает потребности языка j8b:

Возможные улучшения:

← Назад к главной странице