Remove dotted_sym_lit and add "above"

pull/70/head
Stephan Seitz 2021-04-16 09:13:08 +07:00
parent f328310b1e
commit 16dd67db03
5 changed files with 71821 additions and 65922 deletions

@ -15,6 +15,7 @@ const WHITESPACE =
token(repeat1(WHITESPACE_CHAR));
const PREC = {
NUM_LIT: 0,
NORMAL: 1,
PACKAGE_LIT: 2,
DOTTET_LIT: 3,
@ -23,11 +24,11 @@ const PREC = {
}
const SYMBOL_HEAD =
/[^:.\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]/;
/[^:\f\n\r\t ()\[\]{}"@^;`\\,#'\u000B\u001C\u001D\u001E\u001F\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2008\u2009\u200a\u205f\u3000]/;
const SYMBOL_BODY =
choice(SYMBOL_HEAD,
/[#'0-9]/);
/[#']/);
const SYMBOL =
token(seq(SYMBOL_HEAD,
@ -77,6 +78,7 @@ module.exports = grammar(clojure, {
'using',
/being the (hash-key[s]?|hash-value[s]?) in/,
'below',
'above',
'from',
'to',
'upto',
@ -144,6 +146,9 @@ module.exports = grammar(clojure, {
char_lit: (_, original) =>
seq(optional('#'), original),
num_lit: (_, original) =>
prec(PREC.NUM_LIT, original),
_bare_vec_lit: $ =>
choice(seq(field('open', choice('#0A', '#0a')), $.num_lit),
@ -156,18 +161,18 @@ module.exports = grammar(clojure, {
repeat(choice(field('value', $._form), $._gap)),
field('close', ")"))),
dotted_sym_lit: $ => prec.left(PREC.DOTTET_LIT, seq($.sym_lit, repeat1(seq(".", $.sym_lit)))),
//dotted_sym_lit: $ => prec.left(PREC.DOTTET_LIT, seq($.sym_lit, repeat1(seq(".", $.sym_lit)))),
package_lit: $ => prec(PREC.PACKAGE_LIT, seq(
field('package', choice($.dotted_sym_lit, $.sym_lit)), // Make optional, instead of keywords?
field('package', $.sym_lit), // Make optional, instead of keywords?
choice(':', '::'),
field('symbol', choice($.dotted_sym_lit, $.sym_lit))
field('symbol', $.sym_lit)
)),
kwd_lit: $ => prec(PREC.KWD_LIT, seq(
optional('#'),
choice(':', '::'),
choice($.sym_lit, $.dotted_sym_lit),
$.sym_lit,
)),
sym_lit: $ =>
@ -209,7 +214,8 @@ module.exports = grammar(clojure, {
$.unquoting_lit,
$.include_reader_macro,
$.complex_num_lit,
seq($._gap, '.'),
".",
//seq($._gap, '.'),
),
include_reader_macro: $ =>

@ -175,260 +175,255 @@
"name": "complex_num_lit"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_gap"
},
{
"type": "STRING",
"value": "."
}
]
"type": "STRING",
"value": "."
}
]
},
"num_lit": {
"type": "TOKEN",
"type": "PREC",
"value": 0,
"content": {
"type": "PREC",
"value": 10,
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[xX]"
},
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "N"
},
{
"type": "BLANK"
"value": "[xX]"
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9a-fA-F]"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-7]"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "N"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "N"
},
{
"type": "BLANK"
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-7]"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
}
},
{
"type": "PATTERN",
"value": "[rR]"
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9a-zA-Z]"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "N"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "/"
},
{
"type": "REPEAT1",
"content": {
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
}
},
{
"type": "PATTERN",
"value": "[0-9]"
"value": "[rR]"
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9a-zA-Z]"
}
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
}
},
{
"type": "STRING",
"value": "/"
},
{
"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]"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
"value": "[0-9]"
}
]
},
{
"type": "REPEAT1",
"content": {
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]"
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
}
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "M"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[0-9]"
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "M"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[MN]"
},
{
"type": "BLANK"
"value": "[0-9]"
}
]
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[MN]"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
]
}
}
}
},
@ -464,17 +459,8 @@
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sym_lit"
},
{
"type": "SYMBOL",
"name": "dotted_sym_lit"
}
]
"type": "SYMBOL",
"name": "sym_lit"
}
]
}
@ -710,7 +696,7 @@
"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]"
"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",
@ -719,11 +705,11 @@
"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]"
"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": "PATTERN",
"value": "[#'0-9]"
"value": "[#']"
}
]
}
@ -1813,6 +1799,10 @@
"type": "STRING",
"value": "below"
},
{
"type": "STRING",
"value": "above"
},
{
"type": "STRING",
"value": "from"
@ -2542,35 +2532,6 @@
}
]
},
"dotted_sym_lit": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "sym_lit"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "sym_lit"
}
]
}
}
]
}
},
"package_lit": {
"type": "PREC",
"value": 2,
@ -2581,17 +2542,8 @@
"type": "FIELD",
"name": "package",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_sym_lit"
},
{
"type": "SYMBOL",
"name": "sym_lit"
}
]
"type": "SYMBOL",
"name": "sym_lit"
}
},
{
@ -2611,17 +2563,8 @@
"type": "FIELD",
"name": "symbol",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_sym_lit"
},
{
"type": "SYMBOL",
"name": "sym_lit"
}
]
"type": "SYMBOL",
"name": "sym_lit"
}
}
]

@ -360,10 +360,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -372,10 +368,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -483,7 +475,7 @@
"named": true,
"fields": {
"function_name": {
"multiple": true,
"multiple": false,
"required": false,
"types": [
{
@ -494,10 +486,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -506,10 +494,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -686,7 +670,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -697,10 +681,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -709,10 +689,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -826,7 +802,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -837,10 +813,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -849,10 +821,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -1062,21 +1030,6 @@
]
}
},
{
"type": "dotted_sym_lit",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "sym_lit",
"named": true
}
]
}
},
{
"type": "evaling_lit",
"named": true,
@ -1150,7 +1103,7 @@
"named": true,
"fields": {
"variable": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -1161,10 +1114,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -1173,10 +1122,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -1381,7 +1326,7 @@
"named": true,
"fields": {
"condition": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -1392,10 +1337,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -1404,10 +1345,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -1525,7 +1462,7 @@
]
},
"target": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -1536,10 +1473,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -1548,10 +1481,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -1658,10 +1587,6 @@
"multiple": false,
"required": true,
"types": [
{
"type": "dotted_sym_lit",
"named": true
},
{
"type": "sym_lit",
"named": true
@ -1725,10 +1650,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -1737,10 +1658,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -1994,10 +1911,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -2006,10 +1919,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -2164,6 +2073,11 @@
]
}
},
{
"type": "num_lit",
"named": true,
"fields": {}
},
{
"type": "old_meta_lit",
"named": true,
@ -2228,10 +2142,6 @@
"multiple": false,
"required": true,
"types": [
{
"type": "dotted_sym_lit",
"named": true
},
{
"type": "sym_lit",
"named": true
@ -2242,10 +2152,6 @@
"multiple": false,
"required": true,
"types": [
{
"type": "dotted_sym_lit",
"named": true
},
{
"type": "sym_lit",
"named": true
@ -2289,7 +2195,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -2300,10 +2206,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -2312,10 +2214,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -2480,10 +2378,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -2492,10 +2386,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -2779,10 +2669,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -2791,10 +2677,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -3070,10 +2952,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -3082,10 +2960,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -3463,7 +3337,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -3474,10 +3348,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -3486,10 +3356,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -3603,7 +3469,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -3614,10 +3480,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -3626,10 +3488,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -3763,7 +3621,7 @@
]
},
"value": {
"multiple": true,
"multiple": false,
"required": true,
"types": [
{
@ -3774,10 +3632,6 @@
"type": "char_lit",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "complex_num_lit",
"named": true
@ -3786,10 +3640,6 @@
"type": "derefing_lit",
"named": true
},
{
"type": "dis_expr",
"named": true
},
{
"type": "evaling_lit",
"named": true
@ -4298,6 +4148,10 @@
"type": "a",
"named": false
},
{
"type": "above",
"named": false
},
{
"type": "accumulation_verb",
"named": true
@ -4414,10 +4268,6 @@
"type": "nil_lit",
"named": true
},
{
"type": "num_lit",
"named": true
},
{
"type": "on",
"named": false

File diff suppressed because it is too large Load Diff

@ -161,9 +161,7 @@ Defun header
(sym_lit)
(list_lit
(package_lit
(dotted_sym_lit
(sym_lit)
(sym_lit))
(sym_lit)
(sym_lit))
(list_lit
(sym_lit)
@ -536,15 +534,11 @@ foo.bar:baz
(sym_lit)
(sym_lit))
(package_lit
(dotted_sym_lit
(sym_lit)
(sym_lit))
(sym_lit)
(sym_lit))
(list_lit
(package_lit
(dotted_sym_lit
(sym_lit)
(sym_lit))
(sym_lit)
(sym_lit))))
================================================================================
@ -560,9 +554,7 @@ Keywords
(kwd_lit
(sym_lit))
(kwd_lit
(dotted_sym_lit
(sym_lit)
(sym_lit))))
(sym_lit)))
================================================================================
Functions with numbers (TODO!!!)
@ -605,7 +597,6 @@ Chars
(source
(char_lit))
================================================================================
Dotted literals
================================================================================
@ -616,3 +607,9 @@ foo. bar
#.bar
--------------------------------------------------------------------------------
(source
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit)
(sym_lit))