Лексический анализатор (лексер) полностью реализован и поддерживает все необходимые конструкции 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: