Hello everyone.

I'm trying to write a syntax extension that introduces two new tokens "[%" and "%]". But I'm getting a syntax error if token ")" follows token "%]". Could anybody help me please?

Here's the minimal syntax extension code that reproduces the issue:
===================================================================
open Camlp4.PreCast
open Syntax

EXTEND Gram
  expr:
    [ [ "[%"; e = expr LEVEL "simple"; "%]" -> e ] ] ;
END ;;
===================================================================

Usage sample:
===================================================================
# [% 5 %] ;;
- : int = 5

# ([% 5 %]) ;;
Characters 6-9:
  ([% 5 %]);;
        ^^^
Parse error: [expr level simple] expected after "[%" (in [expr])

===================================================================

Thanks in advance.

--
vadim.shender@gmail.com