Version française
Home     About     Download     Resources     Contact us    
Browse thread
camlp4 parser accepts more than its grammar?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Nicolas Pouillard <nicolas.pouillard@g...>
Subject: Re: [Caml-list] camlp4 parser accepts more than its grammar?
Excerpts from Jake Donham's message of Thu Jun 26 23:10:20 +0200 2008:
> Hi list,
> 
> I expected the following program to fail with a parse error, but it
> happily ignores the extra '+'. I would be grateful if someone could
> point out what I'm doing wrong. Thanks,

Nothing wrong from you, that's a camlp4 known bug (PR#4551, PR#4513...).

> open Camlp4.PreCast;;
> 
> let expr = Gram.Entry.mk "expr";;
> let stmt = Gram.Entry.mk "stmt";;
> 
> EXTEND Gram
>   expr: [[
>     x = expr; "+"; y = expr -> x + y
>   | x = INT -> int_of_string x
>   ]];
>   stmt:
>   [[ e = expr; ";"; `EOI -> e ]];
> END;;
> 
> prerr_endline (string_of_int (Gram.parse_string stmt Loc.ghost "2 + 1 + ;"))
> 

-- 
Nicolas Pouillard aka Ertai