Данная программа написана в рамках курса ❤ Методы Трансляции
- Использование необъявленного идентификатора
- Необъявленные процедуры
- Повторное объявление идентификатора
- Повторное объявление процедуры
- Повторное объявление аргументов
- Использование переменной не в соответствии с объявлением
- Примитивное обнаружение:
n:=0; c:='c' s:="string"
- Примитивное обнаружение c переменной:
program vars; var n:integer; var k:string; begin n:=k; end.
- for
- while
- if
- if-else-if*
- if-else
- procedure
- assign
Были убраны обязательные ';'
- install python3
- Install antlr4
$ cd /usr/local/lib $ sudo curl -O http://www.antlr.org/download/antlr-4.7-complete.jar $ export CLASSPATH=".:/usr/local/lib/antlr-4.7-complete.jar:$CLASSPATH" $ alias antlr4='java -jar /usr/local/lib/antlr-4.7-complete.jar' $ alias grun='java org.antlr.v4.gui.TestRig'
- install runtime for python3
$ pip install antlr4-python3-runtime
- git clone this repo
$ git clone https://github.com/zhilyaev/MT-PASCAL.git
- Generate grammar
$ antlr4 -Dlanguage=Python3 antlr/Pascal.g4 or $ make
- run example
main tests/syntax/vars_decl.pas or main.py tests/syntax/vars_decl.pas or python main.py tests/syntax/vars_decl.pas
- use make for tests demo
$ make test