Parapascal consists of 4 java projects:
Provides gui components (java swing) for other parts of the system including code editor field with line numbering and support for syntax highlighting.
It also provides config file management, resoure loading (icons), open/save file subsystem, html exporting...
This is the environment in which parapascal programs are executed. Interpreter has several distinct elements:
ParaPascal interpreter can simulate any number of processors. The picture above shows a configurations with 6 processors.
Parapascal programs consists of list of object that represent instructions - Command pattern.
This is much faster than bytecode interpretation since there is no instruction decoding stage.
Translates textual representation of instructions into form sutable for interpretation.
Syntax resembler that of MASM but instruction set is totally different.
This part of the system is just an intermediary stage between compiler and interpreter and is of little value to end user.
This is the compiler. It translates parapascal code into assembler form.
It does complete syntax and semantic analysis and error reporting expected of modern compilers.
Grammar definitions are written using ANTLR.