Revision 7542a79f041b5f7d6e07b5e3f221f0a603c2acdb authored by Lucas Randazzo on 06 February 2024, 10:37:06 UTC, committed by Marge Bot on 15 February 2024, 15:51:59 UTC
Similar to Baking.attesting_rights, but for the Raw_context.t
1 parent 45cf30c
Raw File
JSON_parser.mly
%{
%}

%token EOF
%token LBRACE RBRACE LBRACKET RBRACKET COMMA COLON
%token NULL
%token <bool> BOOL
%token <float> FLOAT
%token <string> STRING

%type <JSON_AST.t> json
%start json
%%

json:
| NULL { `Null }
| BOOL { `Bool $1 }
| FLOAT { `Float $1 }
| STRING { `String $1 }
| LBRACE fields RBRACE { `O $2 }
| LBRACE RBRACE { `O [] }
| LBRACKET items RBRACKET { `A $2 }
| LBRACKET RBRACKET { `A [] }

fields:
| STRING COLON json COMMA fields { ($1, $3) :: $5 }
| STRING COLON json { [ $1, $3 ] }

items:
| json COMMA items { $1 :: $3 }
| json { [ $1 ] }
back to top