Parser.fsy:
%{
//let env=Hashtbl.create 10
%}
%token INT
%token SUB
%token EOL
%token EQUAL
%token NAME
%left SUB
%start main /* the entry point */
%type main
%%
main:
statement_list EOL { $1 }
statement_list:
{}
|statement statement_list {}
statement:
assign_statement{}
|print_statement{}
assign_statement:
var EQUAL expr {//Hashtbl.add env $1 $3}
print_statement:
var {//Printf.printf "%d\n" (Hashtbl.find env $1)}
expr:
INT { $1}
| expr SUB expr { $1 - $3}
| var {//Hashtbl.find env $1}
var:NAME {$1}
this file is convert from Parser.mly,I only change the filename and comment out the line which use the ocaml's lib.using:
fsyacc --module Parser Parser.fsy
got
parser.fsy(36,13): error: End of file on lexing stream
(if the cursor is at end of line 36,the error is at the end of line 36;if the cursor is at the begin of new line 37,the error is at line 37)
so what's the error mean?I can find very few doc of fsyacc.Thanks!