skill = inline_expr+ expr = (inline_expr / nl) inline_expr = (listraw / listc / listskill / inline_get / inline_op / inline_assign / ws) inline_assign = TOKEN ws* "=" ws* (inline_expr / LITERAL / TOKEN) inline_op = TOKEN ws* inline_op_symbol ws* (inline_expr / TOKEN / LITERAL) inline_op_symbol = ~"[*-+/]" inline_get = TOKEN inline_get_symbol (inline_expr / TOKEN / LITERAL) inline_get_symbol = ~"(~>|->)" listraw = "'" list_start expr* list_end listc = TOKEN list_start expr* list_end listskill = list_start expr* list_end list_start = "(" list_end = ")" TOKEN = ~"[a-zA-Z_][_a-zA-Z0-9]+" LITERAL = L_num / L_t / L_nil / L_str L_num = ~"[0-9]+(\.[0-9]+)?" L_t = "t" L_nil = "nil" L_str = delim_str any_str delim_str delim_str = "\"" any_str = ~"[^\"]*" ws = ~"\\h" nl = ~"\\n"