Лексичний аналізатор

Модуль, що відповідає за розбір вихідного коду на лексеми.

Поділ робиться на основі типу лексем, які бувають:
  • ALPHA - букви
  • NUM - цифри
  • SYMB - символи =:> <+ - * / () {}%,
  • CMDEND - символ ;
  • QUOTE - лапки ” і ‘
  • COMMENT - коментарі. # - Однорядковий коментар

Все послідовності символів типу SYMB є сукупностями окремих посимвольно лексем крім деяких винятків, таких як поєднання символів ‘> =’ і ‘<=’.

Всі однорядкові коментарі ігноруються і не входять в результуючий список лексем.

Для кожної рядкової лексеми запам’ятовується рядок, на якій вона була знайдена для подальшої обробки помилок.

pyCompiler.utils.lexer.lex(source)

Функція, що відповідає за лексичний аналіз

Parameters:source – вихідний код програми
Return type:список лексем

Приклад

Дан вихідний код:

i = (15-2) -5;
print "i =";
print i;
print "\ n";

Його лексичний розбір буде таким: [‘i’, ‘=’, ‘(‘, ‘15 ‘,’ - ‘, ‘2’, ‘)’, ‘-‘, ‘5 ‘,’; ‘,’ print ‘,’ “i =” ‘,’; ‘,’ print ‘,’ i ‘,’; ‘,’ print ‘,’ “n” ‘,’; ‘]