Add first parser draft for temp prfiles.

This commit is contained in:
2024-01-18 23:27:06 +01:00
parent dc6e973d52
commit 223de7f190
8 changed files with 122 additions and 2 deletions

View File

@@ -22,6 +22,9 @@ SPACE "\t"|" "
NUM [-+]?([0-9]*\.[0-9]+|[0-9]+)
%%
%{
yylval = lval;
%}
<*>{SPACE} { /*Ignore spaces */}
{COMMENT_LINE} {loc->lines(); return token::lineend;}
@@ -40,4 +43,9 @@ digio_conf { return token::kw_digio_conf; }
digio_set { return token::kw_digio_set; }
digio_wait { return token::kw_digio_wait; }
. {
std::cerr << "[ERR] Failed to parse: " << yytext << " @ " << *loc << std::endl;
return token::unexpected_input;
}
%%

View File

@@ -43,6 +43,7 @@
%token kw_digio_conf
%token kw_digio_set
%token kw_digio_wait
%token unexpected_input
%%
@@ -71,7 +72,8 @@ tpr_command_inner: cmd_pid_conf;
cmd_pid_conf: kw_pid_conf number number number number number number;
cmd_temp_set: kw_temp_set number;
cmd_temp_set: kw_temp_set number {std::cout << "Set Temperature" << $2 << std::endl;}
;
cmd_wait_temp: kw_wait_temp number;
@@ -95,6 +97,6 @@ cmd_digio_wait: kw_digio_wait number number;
void tpr::TempProfileParser::error(const location_type &l, const std::string &err_message)
{
std::cerr << "Error " << err_message << " at " << l << std::endl;
std::cerr << "[ERR] Parser Error: '" << err_message << "' at " << l << std::endl;
std::abort();
}