diff --git a/src/lexer.mll b/src/lexer.mll index a2c7d7d..3a4175c 100644 --- a/src/lexer.mll +++ b/src/lexer.mll @@ -62,6 +62,11 @@ rule token = parse | '/' { BO_div } | '%' { BO_mod } | "->" { BO_arrow } + | "--" { read_single_line_comment lexbuf } | eof { EOF } | _ { raise (Lexing_error (Format.sprintf "Error when seeing %s" (lexeme lexbuf)))} +and read_single_line_comment = parse + | '\n' { token lexbuf } + | eof { EOF } + | _ { read_single_line_comment lexbuf } diff --git a/src/parser.mly b/src/parser.mly index e6ac41a..8dba723 100644 --- a/src/parser.mly +++ b/src/parser.mly @@ -187,9 +187,9 @@ node: node_content: IDENT LPAREN in_params RPAREN - RETURNS LPAREN out_params RPAREN SEMICOL + RETURNS LPAREN out_params RPAREN OPTIONAL_SEMICOL local_params - LET equations TEL + LET equations TEL OPTIONAL_SEMICOL { let node_name = $1 in let (t_in, e_in) = $3 in let (t_out, e_out) = $7 in @@ -202,6 +202,11 @@ node_content: n_type = FTArr (t_in, t_out); } in Hashtbl.add defined_nodes node_name n; n }; +OPTIONAL_SEMICOL: + | /* empty */ {} + | SEMICOL {} +; + in_params: | /* empty */ { (FTList [], []) } | param_list { $1 }