Current section
Files
Jump to
Current section
Files
src/ion_parser.yrl
Nonterminals top_level top_level_values top_level_value value values entity delimiting_entity keyword_delimiting_entity keyword_entity numeric_entity list sexp sexp_value sexp_values sexp_delimiting_entity sexp_keyword_delimiting_entity sexp_null_delimiting_entity sexp_keyword_entity operator operators struct field fields any_null field_name quoted_text symbol long_strings macro_invocation macro_values.
Terminals blob long_clob short_clob long_string short_string timestamp bool type null typed_null id_symbol quoted_symbol symbol_id decimal float s_float hex_int dec_int bin_int non_dot_operator macro_start '[' ']' '(' ')' '{' '}' ',' ':' '::' '.'.
Rootsymbol top_level.
top_level -> top_level_values : '$1'.
top_level -> top_level_values value : {'$1', '$2'}.
top_level_value -> symbol '::' top_level_value : {annotated, '$1', '$3'}.
top_level_value -> delimiting_entity : '$1'.
top_level_value -> numeric_entity : '$1'.
top_level_value -> numeric_entity quoted_symbol '::' value : {'$1', '$2', '$4'}.
top_level_value -> numeric_entity delimiting_entity : {'$1', '$2'}.
top_level_value -> keyword_entity : '$1'.
top_level_value -> keyword_entity quoted_symbol '::' value : {'$1', '$2', '$4'}.
top_level_value -> keyword_entity keyword_delimiting_entity : {'$1', '$2'}.
top_level_values -> top_level_value : ['$1'].
top_level_values -> top_level_value top_level_values : ['$1' | '$2'].
value -> symbol '::' value : {annotated, '$1', '$3'}.
value -> entity : '$1'.
entity -> numeric_entity : '$1'.
entity -> delimiting_entity : '$1'.
entity -> keyword_entity : '$1'.
delimiting_entity -> quoted_text : '$1'.
delimiting_entity -> short_clob : '$1'.
delimiting_entity -> long_clob : '$1'.
delimiting_entity -> blob : '$1'.
delimiting_entity -> list : '$1'.
delimiting_entity -> sexp : '$1'.
delimiting_entity -> struct : '$1'.
delimiting_entity -> macro_invocation : '$1'.
keyword_delimiting_entity -> delimiting_entity : '$1'.
keyword_delimiting_entity -> numeric_entity : '$1'.
keyword_entity -> any_null : '$1'.
keyword_entity -> bool : '$1'.
keyword_entity -> s_float : '$1'.
keyword_entity -> id_symbol : '$1'.
keyword_entity -> symbol_id : '$1'.
keyword_entity -> type : '$1'.
numeric_entity -> bin_int : '$1'.
numeric_entity -> dec_int : '$1'.
numeric_entity -> hex_int : '$1'.
numeric_entity -> timestamp : '$1'.
numeric_entity -> float : '$1'.
numeric_entity -> decimal : '$1'.
list -> '[' values ']' : {list, '$2'}.
list -> '[' ']' : {list, []}.
values -> value : ['$1'].
values -> value ',' : ['$1'].
values -> value ',' values : ['$1' | '$3'].
sexp -> '(' sexp_values value ')' : {sexp, '$2', '$3'}.
sexp -> '(' sexp_values ')' : {sexp, '$2'}.
sexp -> '(' ')' : {sexp}.
sexp_value -> symbol '::' sexp_value : {annotated, '$1', '$3'}.
sexp_value -> sexp_delimiting_entity : '$1'.
sexp_value -> operators : '$1'.
sexp_value -> numeric_entity : '$1'.
sexp_value -> numeric_entity quoted_symbol '::' value : {'$1', '$2', '$4'}.
sexp_value -> numeric_entity sexp_delimiting_entity : {'$1', '$2'}.
sexp_value -> sexp_keyword_entity : '$1'.
sexp_value -> sexp_keyword_entity quoted_symbol '::' value : {'$1', '$2', '$4'}.
sexp_value -> sexp_keyword_entity sexp_keyword_delimiting_entity : {'$1', '$2'}.
sexp_value -> null : '$1'.
sexp_value -> null quoted_symbol '::' value : {'$1', '$2', '$4'}.
sexp_value -> null sexp_null_delimiting_entity : {'$1', '$2'}.
sexp_values -> sexp_value : ['$1'].
sexp_values -> sexp_value sexp_values : ['$1' | '$2'].
sexp_delimiting_entity -> delimiting_entity : '$1'.
sexp_keyword_delimiting_entity -> sexp_delimiting_entity : '$1'.
sexp_keyword_delimiting_entity -> numeric_entity : '$1'.
sexp_keyword_delimiting_entity -> operators : '$1'.
sexp_null_delimiting_entity -> delimiting_entity : '$1'.
sexp_null_delimiting_entity -> operators : '$1'.
sexp_keyword_entity -> typed_null : '$1'.
sexp_keyword_entity -> bool : '$1'.
sexp_keyword_entity -> s_float : '$1'.
sexp_keyword_entity -> id_symbol : '$1'.
sexp_keyword_entity -> symbol_id : '$1'.
sexp_keyword_entity -> type : '$1'.
operator -> '.' : '$1'.
operator -> non_dot_operator : '$1'.
operators -> operator : ['$1'].
operators -> operator operators : ['$1' | '$2'].
struct -> '{' fields '}' : {struct, '$2'}.
struct -> '{' '}' : {struct, []}.
field -> field_name ':' value : {'$1', '$3'}.
fields -> field : ['$1'].
fields -> field ',' : ['$1'].
fields -> field ',' fields : ['$1' | '$3'].
fields -> macro_invocation : [{macro_field, '$1'}].
fields -> macro_invocation ',' : [{macro_field, '$1'}].
fields -> macro_invocation ',' fields : [{macro_field, '$1'} | '$3'].
any_null -> null : '$1'.
any_null -> typed_null : '$1'.
field_name -> symbol : '$1'.
field_name -> short_string : '$1'.
field_name -> long_strings : '$1'.
quoted_text -> quoted_symbol : '$1'.
quoted_text -> short_string : '$1'.
quoted_text -> long_strings : '$1'.
long_strings -> long_string : ['$1'].
long_strings -> long_string long_strings : ['$1' | '$2'].
symbol -> id_symbol : '$1'.
symbol -> quoted_symbol : '$1'.
symbol -> symbol_id : '$1'.
symbol -> type : '$1'.
macro_invocation -> macro_start id_symbol ')' : {macro, '$2', []}.
macro_invocation -> macro_start id_symbol macro_values ')' : {macro, '$2', '$3'}.
macro_values -> value : ['$1'].
macro_values -> value macro_values : ['$1' | '$2'].
Erlang code.