Add semantic passes

This commit is contained in:
2024-12-23 13:54:11 +01:00
parent f080b75c52
commit 40306ac986
27 changed files with 1220 additions and 325 deletions

View File

@@ -4,7 +4,7 @@
%code requires {
#include <cstdint>
#include <iostream>
#include "elna/source/driver.hpp"
#include "elna/source/driver.h"
#if !defined(yyFlexLexerOnce)
#include <FlexLexer.h>
@@ -30,7 +30,7 @@
{
}
yy::parser::symbol_type lex();
yy::parser::symbol_type lex(elna::source::driver& driver);
};
}
@@ -39,10 +39,9 @@
%define api.token.raw
%define api.token.constructor
%define api.value.type variant
%define parse.assert
%parse-param {elna::source::lexer& lexer}
%parse-param {elna::source::driver& driver}
%param {elna::source::driver& driver}
%locations
%header
@@ -58,7 +57,6 @@
%token IF THEN WHILE DO
%token CONST VAR PROCEDURE
%token BEGIN_BLOCK END_BLOCK
%token TRUE FALSE
%token LEFT_PAREN RIGHT_PAREN SEMICOLON DOT COMMA
%token GREATER_EQUAL LESS_EQUAL LESS_THAN GREATER_THAN NOT_EQUAL EQUALS
%token PLUS MINUS MULTIPLICATION DIVISION