You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've just added this project grammar to https://mingodad.github.io/parsertl-playground/playground/ an Yacc/Lex compatible online editor/tester (select Mimosa http request parser from Examples then click Parse to see a parse tree for the content in Input source).
Notice that I've replaced right recursion by left recursion in some rules.
And here is an EBNF to generate a nice navigable railroad diagram:
//
// EBNF to be viewd at https://www.bottlecaps.de/rr/ui
//
// Copy and paste this at https://www.bottlecaps.de/rr/ui in the 'Edit Grammar' tab
// then click the 'View Diagram' tab.
//
request::=
method LOCATION PROTO_MAJOR PROTO_MINOR kvs
method::=
HEAD
| GET
| POST
| PUT
| DELETE
| TRACE
| OPTIONS
| CONNECT
| PATCH
| PROPFIND
| PROPPATCH
| MKCOL
| COPY
| MOVE
| LOCK
| UNLOCK
| MIMOSA_SYMLINK
kvs::=
kvs kv
| /*%empty*/
kv::=
KEY_ACCEPT_ENCODING accept_encodings
| KEY_CONNECTION VALUE_CONNECTION
| KEY_COOKIE cookies
| KEY_CONTENT_LENGTH VAL64
| KEY_CONTENT_TYPE VALUE
| KEY_HOST HOST PORT
| KEY_HOST HOST
| KEY_REFERRER VALUE
| KEY_USER_AGENT VALUE
| KEY_IF_MODIFIED_SINCE VALUE
| KEY_DESTINATION VALUE
| KEY_CONTENT_RANGE RANGE_UNIT RANGE_START RANGE_END RANGE_LENGTH
| KEY_RANGE RANGE_UNIT '=' byte_range_set
| KEY VALUE
accept_encodings::=
/*%empty*/
| accept_encodings COMPRESS
| accept_encodings IDENTITY
| accept_encodings DEFLATE
| accept_encodings GZIP
| accept_encodings ZSTD
| accept_encodings BR
| accept_encodings SDCH
cookies::=
/*%empty*/
| cookie
| cookies ';' cookie
cookie::=
ATTR
| ATTR '='
| ATTR '=' VALUE
byte_range_set::=
byte_range
| byte_range_set ',' byte_range
byte_range::=
VAL64 '-' VAL64
| VAL64 '-'
| '-' VAL64
The text was updated successfully, but these errors were encountered:
I've just added this project grammar to https://mingodad.github.io/parsertl-playground/playground/ an
Yacc/Lex
compatible online editor/tester (selectMimosa http request parser
fromExamples
then clickParse
to see a parse tree for the content inInput source
).Notice that I've replaced right recursion by left recursion in some rules.
And here is an
EBNF
to generate a nice navigable railroad diagram:The text was updated successfully, but these errors were encountered: