Implementation of the primitive compiler program -> declaration_lists | expression_listsdeclaration_lists -> declaration_lists var_declaration | var_declarationvar_declaration -> type_specifier identifier;type_specifier -> byte | short | int | longexpression_lists -> expression_lists expression | expressionexpression -> mutable = common_expression;common_expression -> sum_expression mul_operator mul_expression | mul_expression mul_operator sum_expression | sum_expression sum_operator mul_expression | mul_expression sum_operator sum_expression | sum_expression | mul_expression sum_expression -> sum_expression sum_operator factor | factor sum_operator factormul_expression -> mul_expression mul_operator factor | factor mul_operator factorfactor -> mutable | imutablemutable -> identifierimutable -> expression | constantsum_operator -> + | -mul_operator -> * | / constant -> digitidentifier -> letter_listdigit_list | letter_list letter_list -> letter_list letter | letterdigit_list -> digit_list digit | digitletter -> a | ... | z | A | ... | Zdigit -> 0 | ... | 9
🔴 Example of the program with current grammar int value1;int value2;int result1;int result2;value1 = 5;value2 = 15;result1 = 0;result2 = 0;result1 = value1 * value2 - value2 / value1;result2 = value1 + value1 * value2 + value2;
Current project uses CMake system for building application. You can build compiler by your platform, using the following commands:
mkdir Buildcd Buildcmake ..
List of arguments for compilation:
Program usage: -h [ --help ] Show help message. -i [ --input ] arg Input source file. -o [ --output ] arg Output executable file.
Example of usage compiler:
./Compiler -i SourceFile.as -o ExecutableFile