idl-parser 0.1.0

A parser to parse Method URL Data -> Data
Documentation
// GET path?query-params request -> responseType
endpoint = { method ~ SPACE ~ path ~ query_params ~ (SPACE ~ request_type)? ~ (SPACE ~ "->" ~ SPACE ~ response_type)? }
/// #00FF00
method = { get | post | put | delete }
get = { "GET" | "get" }
post = { "POST" | "post" }
put = { "PUT" | "put" }
delete = { "DELETE" | "delete" }
/// #FF0000
path = { (segment | path_variable)+ }
segment = { "/" ~ name }

path_variable = _{ "/{" ~ variable ~ "}" }

query_params = { "?" ~ variable ~ ("&" ~ variable)* | "" }

variable = { name ~ ":" ~ variable_type }

name = { ASCII_ALPHA ~ ASCII_ALPHANUMERIC* }

request_type = { name }
response_type = { name }

/// #66000FF
variable_type = @{
    "string" | "short" | "int" | "long" | "byte" | "float" | "double" | "bool"
}

SPACE = _{("\r" | "\n" | "\r\n" | " ")+ }