Implement comparison operators

This commit is contained in:
2024-04-02 09:07:13 +02:00
parent 3c19bf1504
commit 4251c361c7
9 changed files with 205 additions and 42 deletions

View File

@ -146,7 +146,8 @@ namespace elna::riscv
instruction& i(x_register rd, funct3_t funct3, x_register rs1, std::uint32_t immediate);
instruction& s(std::uint32_t imm, funct3_t funct3, x_register rs1, x_register rs2);
instruction& b(std::uint32_t imm, funct3_t funct3, x_register rs1, x_register rs2);
instruction& r(x_register rd, funct3_t funct3, x_register rs1, x_register rs2, funct7_t funct7 = funct7_t::none);
instruction& r(x_register rd, funct3_t funct3, x_register rs1, x_register rs2,
funct7_t funct7 = funct7_t::none);
instruction& u(x_register rd, std::uint32_t imm);
instruction& j(x_register rd, std::uint32_t imm);

View File

@ -73,9 +73,10 @@ namespace elna::source
colon,
when,
then,
_while,
loop,
_do,
procedure
procedure,
comparison_operator
};
/**

View File

@ -11,7 +11,13 @@ namespace elna::source
sum,
subtraction,
multiplication,
division
division,
equals,
not_equals,
less,
greater,
less_equal,
greater_equal
};
class declaration;
@ -280,6 +286,7 @@ namespace elna::source
std::unique_ptr<expression> parse_factor();
std::unique_ptr<expression> parse_term();
std::unique_ptr<expression> parse_expression();
std::unique_ptr<expression> parse_condition();
std::unique_ptr<constant_definition> parse_constant_definition();
std::unique_ptr<procedure_definition> parse_procedure_definition();
std::unique_ptr<declaration> parse_declaration();