You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.0 KiB
55 lines
1.0 KiB
/* Yacc / Bison hl test file.
|
|
* It won't compile :-) Sure !
|
|
*/
|
|
|
|
%{
|
|
|
|
#include <iostream>
|
|
using namespace std;
|
|
|
|
extern KateParser *parser;
|
|
|
|
%}
|
|
|
|
%locations
|
|
|
|
%union {
|
|
int int_val;
|
|
double double_val;
|
|
bool bool_val;
|
|
char *string_val;
|
|
char *ident_val;
|
|
struct var *v;
|
|
void *ptr;
|
|
}
|
|
|
|
%token <int_val> TOK_NOT_EQUAL "!="
|
|
%token <int_val> TOK_LESSER_E "<="
|
|
%token <int_val> TOK_GREATER_E ">="
|
|
%token <int_val> TOK_EQUAL_2 "=="
|
|
|
|
%type <int_val> type type_proc
|
|
|
|
%%
|
|
|
|
prog: KW_PROGRAM ident { parser->start($2); } prog_beg_glob_decl instructions { parser->endproc(0); } dev_procedures KW_ENDP ;
|
|
|
|
number: integer_number
|
|
| TOK_DOUBLE
|
|
{
|
|
$$ = new var;
|
|
$$->type = KW_REEL;
|
|
$$->cl = var::LITTERAL;
|
|
$$->real = $<int_val>1;
|
|
};
|
|
|
|
%%
|
|
|
|
#include <stdio.h>
|
|
|
|
int main(void)
|
|
{
|
|
puts("Hello, World!");
|
|
return 0;
|
|
}
|