mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
c162c66118
This PR does two main things: 1. Work through the main low-hanging fruit issues in the formatter keeping it from feeling mature and usable 2. Iterate and prove that point by formatting all of the Jak 1 code base. **This has removed around 100K lines in total.** - The decompiler will now format it's results for jak 1 to keep things from drifting back to where they were. This is controlled by a new config flag `format_code`. How am I confident this hasn't broken anything?: - I compiled the entire project and stored it's `out/jak1/obj` files separately - I then recompiled the project after formatting and wrote a script that md5's each file and compares it (`compare-compilation-outputs.py` - The results (eventually) were the same: ![Screenshot 2024-05-25 132900](https://github.com/open-goal/jak-project/assets/13153231/015e6f20-8d19-49b7-9951-97fa88ddc6c2) > This proves that the only difference before and after is non-critical whitespace for all code/macros that is actually in use. I'm still aware of improvements that could be made to the formatter, as well as general optimization of it's performance. But in general these are for rare or non-critical situations in my opinion and I'll work through them before doing Jak 2. The vast majority looks great and is working properly at this point. Those known issues are the following if you are curious: ![image](https://github.com/open-goal/jak-project/assets/13153231/0edfaba1-6d36-40f5-ab23-0642209867c4)
1097 lines
26 KiB
JSON
Vendored
Generated
1097 lines
26 KiB
JSON
Vendored
Generated
{
|
|
"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": []
|
|
}
|