Skip to content

roguetaver/Compilador-LogComp

Repository files navigation

Compilador-LogComp

Compilador da disciplina Logica Computacional Feito por André Tavernaro

git status

Roteiro 9 - ATUAL

Alt text Alt text

PROGRAM = (λ | DECLARATION);

DECLARATION = ("int" | "str" | "void"), IDENTIFIER, "(", { ("int" | "str"), IDENTIFIER, { "," | ("int" | "str"), IDENTIFIER} }, ")", BLOCK;

BLOCK = ("{", STATEMENT, "}" | "{", "}");

STATEMENT =  (((λ | ASSIGNMENT | PRINT  | VAR_TYPE | RETURN), ";") | (BLOCK | IF | WHILE));

FACTOR = INT | STRING | (IDENTIFIER, { "(", { RELEXPRESSION, { "," | RELEXPRESSION } } ")" }) | (("+" | "-" | "!" FACTOR) | "(", RELEXPRESSION, ")" | SCANF;

TERM = FACTOR, { ("*" | "/" | "&&"), FACTOR };

EXPRESSION = TERM, { ("+" | "-" | "||"), TERM } ;

RELEXPRESSION = EXPRESSION , {("<" | ">" | "==") , EXPRESSION } ;

WHILE = "while", "(", RELEXPRESSION ,")", STATEMENT;

IF = "if", "(", RELEXPRESSION ,")", STATEMENT, (("else", STATEMENT) | λ );

ASSIGNMENT = (IDENTIFIER, "=", RELEXPRESSION) | ( "(", { RELEXPRESSION, { "," | RELEXPRESSION } }, ")" );

RETURN = "return" , "(", RELEXPRESSION, ")";

PRINT = "printf", "(", RELEXPRESSION, ")";

SCANF = "scanf", "(", ")";

IDENTIFIER = LETTER, { LETTER | DIGIT | "_" };

DIGIT = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9);

INT = DIGIT, { DIGIT };

VAR_TYPE = ("int" | "str") , IDENTIFIER , (λ | {"," , IDENTIFIER });

STRING = """, (LETTER | DIGIT), """;

LETTER = ( a | ... | z | A | ... | Z ) ;

Roteiro 6 - OK

Alt text Alt text

BLOCK = "{" , { STATEMENT }, "}" ;
STATEMENT = ( λ | ASSIGNMENT | PRINT | BLOCK | WHILE | IF), ";" ;
FACTOR = NUMBER | IDENTIFIER | (("+" | "-" | "!") , FACTOR) | "(" , RELEXPRESSION , ")" | SCANF;
TERM = FACTOR, { ("*" | "/" | "&&"), FACTOR } ;
EXPRESSION = TERM, { ("+" | "-" | "||"), TERM } ;
RELEXPRESSION = EXPRESSION , {("<" | ">" | "==") , EXPRESSION } ;
WHILE = "while", "(", RELEXPRESSION ,")", STATEMENT;
IF = "if", "(", RELEXPRESSION ,")", STATEMENT, (("else", STATEMENT) | λ );
ASSIGNMENT = IDENTIFIER, "=" , EXPRESSION ;
PRINT = "printf", "(" , EXPRESSION, ")" ;
SCANF = "scanf", "(", ")" ;
IDENTIFIER = LETTER, { LETTER | DIGIT | "_" } ;
NUMBER = DIGIT , { DIGIT } ;
LETTER = ( a | ... | z | A | ... | Z ) ;
DIGIT = ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 ) ;

Roteiro 5 - OK

Alt text Alt text

Roteiro 4 - OK

Alt text Alt text

Roteiro 3 - OK

Alt text Alt text

Roteiro 2 -OK

Alt text

Roteiro 1 - OK

Alt text

About

Compilador da disciplina Logica Computacional

Resources

Stars

Watchers

Forks

Packages

No packages published