{ "name": "opengoal", "rules": { "source": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_form" }, { "type": "SYMBOL", "name": "_gap" } ] } }, "_gap": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_ws" }, { "type": "SYMBOL", "name": "comment" }, { "type": "SYMBOL", "name": "block_comment" } ] }, "_ws": { "type": "TOKEN", "content": { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[\\f\\n\\r\\t \\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" } } }, "comment": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "(;)[^\\n]*" } }, "block_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#|" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^|#]" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "PATTERN", "value": "[^|]" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "|" }, { "type": "PATTERN", "value": "[^#]" } ] } ] } }, { "type": "STRING", "value": "|#" } ] } }, "_form": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "num_lit" }, { "type": "SYMBOL", "name": "kwd_lit" }, { "type": "SYMBOL", "name": "str_lit" }, { "type": "SYMBOL", "name": "char_lit" }, { "type": "SYMBOL", "name": "null_lit" }, { "type": "SYMBOL", "name": "bool_lit" }, { "type": "SYMBOL", "name": "sym_lit" }, { "type": "SYMBOL", "name": "list_lit" }, { "type": "SYMBOL", "name": "quoting_lit" }, { "type": "SYMBOL", "name": "quasi_quoting_lit" }, { "type": "SYMBOL", "name": "unquote_splicing_lit" }, { "type": "SYMBOL", "name": "unquoting_lit" } ] }, "num_lit": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[+-]" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "#x" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "#b" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-1]" } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "REPEAT", "content": { "type": "PATTERN", "value": "[0-9]" } } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } ] } ] } }, "kwd_lit": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[:']" }, { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:/\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" } ] } } ] } }, "_format_token": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[+-]" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "#x" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9a-fA-F]" } } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "#b" }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-1]" } } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "." }, { "type": "REPEAT", "content": { "type": "PATTERN", "value": "[0-9]" } } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } } ] } ] } ] } }, "named": true, "value": "num_lit" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "." }, "named": true, "value": "char_lit" } ] } ] }, "format_prefix_parameters": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "v" }, { "type": "STRING", "value": "V" }, { "type": "STRING", "value": "#" } ] }, "format_modifiers": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_format_token" }, { "type": "STRING", "value": "," } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "@" }, { "type": "STRING", "value": "@:" }, { "type": "STRING", "value": ":" }, { "type": "STRING", "value": ":@" } ] } ] }, "format_directive_type": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "repetitions", "content": { "type": "SYMBOL", "name": "_format_token" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "~" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "|" } ] } ] }, { "type": "PATTERN", "value": "[cC]" }, { "type": "PATTERN", "value": "\\^" }, { "type": "STRING", "value": "\n" }, { "type": "STRING", "value": "\r" }, { "type": "PATTERN", "value": "[pP]" }, { "type": "PATTERN", "value": "[iI]" }, { "type": "PATTERN", "value": "[wW]" }, { "type": "PATTERN", "value": "[aA]" }, { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[()]" }, { "type": "PATTERN", "value": "[{}]" }, { "type": "PATTERN", "value": "[\\[\\]]" }, { "type": "PATTERN", "value": "[<>]" }, { "type": "STRING", "value": ";" }, { "type": "STRING", "value": "`" }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "numberOfArgs", "content": { "type": "SYMBOL", "name": "_format_token" } }, { "type": "STRING", "value": "*" } ] }, { "type": "STRING", "value": "?" }, { "type": "STRING", "value": "Newline" }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_format_token" }, { "type": "STRING", "value": "," } ] } }, { "type": "PATTERN", "value": "[$AmMrRbBdDgGxXeEoOsStTfFHhJjKkLlNnVwWyYzZ]" } ] } ] }, "format_specifier": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "~" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "format_prefix_parameters" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "format_modifiers" }, { "type": "BLANK" } ] }, { "type": "PREC", "value": 5, "content": { "type": "SYMBOL", "name": "format_directive_type" } } ] } }, "str_lit": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\\\~\"]+" } } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "\\\\." } ] } }, { "type": "SYMBOL", "name": "format_specifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "~" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "\"" } ] }, "char_lit": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": ".|\\n" }, { "type": "STRING", "value": "\\s" }, { "type": "STRING", "value": "\\n" }, { "type": "STRING", "value": "\\t" } ] } ] } }, "null_lit": { "type": "TOKEN", "content": { "type": "STRING", "value": "none" } }, "bool_lit": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "#f" }, { "type": "STRING", "value": "#t" } ] } }, "sym_lit": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sym_unqualified" }, { "type": "SYMBOL", "name": "_digit_sym" } ] } ] }, "_digit_sym": { "type": "FIELD", "name": "name", "content": { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[0-9]" } }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:'0-9\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "PATTERN", "value": "[:#~'0-9\\/]" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:'0-9\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "PATTERN", "value": "[:#~'0-9\\/]" } ] } } ] } }, "named": true, "value": "sym_name" } }, "_sym_unqualified": { "type": "FIELD", "name": "name", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "/" }, { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:'0-9\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\\f\\n\\r\\t ()\\[\\]{}\"@~^;`\\\\,:'0-9\\u000B\\u001C\\u001D\\u001E\\u001F\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2008\\u2009\\u200a\\u205f\\u3000]" }, { "type": "PATTERN", "value": "[:#~'0-9\\/]" } ] } } ] } } ] }, "named": true, "value": "sym_name" } }, "list_lit": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_bare_list_lit" } ] }, "_bare_list_lit": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "open", "content": { "type": "STRING", "value": "(" } }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_form" } }, { "type": "SYMBOL", "name": "_gap" } ] } }, { "type": "FIELD", "name": "close", "content": { "type": "STRING", "value": ")" } } ] }, "quoting_lit": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "marker", "content": { "type": "STRING", "value": "'" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_gap" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_form" } } ] }, "quasi_quoting_lit": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "marker", "content": { "type": "STRING", "value": "`" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_gap" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_form" } } ] }, "unquote_splicing_lit": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "marker", "content": { "type": "STRING", "value": ",@" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_gap" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_form" } } ] }, "unquoting_lit": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "marker", "content": { "type": "STRING", "value": "," } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_gap" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_form" } } ] } }, "extras": [], "conflicts": [], "precedences": [], "externals": [], "inline": [ "_sym_unqualified" ], "supertypes": [] }