Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🎓 Implementation of the primitive compiler without popular tools like LLVM for abstract programming language.

NotificationsYou must be signed in to change notification settings

VladimirBalun/Compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔴 Language BNF grammar

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;

🔴 How to build compiler

Current project uses CMake system for building application. You can build compiler by your platform, using the following commands:

mkdir Buildcd Buildcmake ..

🔴 How to use compiler

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

About

🎓 Implementation of the primitive compiler without popular tools like LLVM for abstract programming language.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp