Added grammar/json.peg

This commit is contained in:
yhirose 2022-06-28 16:45:17 -04:00
parent 75cdfaf350
commit ebfee4336a
2 changed files with 26 additions and 2 deletions

View File

@ -1,6 +1,4 @@
#
# CSV grammar based on RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt)
#
file <- (header NL)? record (NL record)* NL?
header <- name (COMMA name)*

26
grammar/json.peg Normal file
View File

@ -0,0 +1,26 @@
# JSON grammar based on RFC 4627 (http://www.ietf.org/rfc/rfc4627.txt)
json <- object / array
object <- '{' (member (',' member)*)? '}' { no_ast_opt }
member <- string ':' value
array <- '[' (value (',' value)*)? ']'
value <- boolean / null / number / string / object / array
boolean <- 'false' / 'true'
null <- 'null'
number <- < minus int frac exp >
minus <- '-'?
int <- '0' / [1-9][0-9]*
frac <- ('.' [0-9]+)?
exp <- ([eE] [-+]? [0-9]+)?
string <- '"' < char* > '"'
char <- unescaped / escaped
escaped <- '\\' (["\\/bfnrt] / 'u' [a-fA-F0-9]{4})
unescaped <- [\u0020-\u0021\u0023-\u005b\u005d-\u10ffff]
%whitespace <- [ \t\r\n]*