B: Fix incorrect local variable index parsing
This commit is contained in:
parent
31195cdd60
commit
495493bbbb
|
@ -1,7 +1,6 @@
|
||||||
import { styleTags, tags } from '@lezer/highlight';
|
import { styleTags, tags } from '@lezer/highlight';
|
||||||
|
|
||||||
export const highlighting = styleTags({
|
export const highlighting = styleTags({
|
||||||
'Index': tags.unit,
|
|
||||||
'ComplexIndex': tags.unit,
|
'ComplexIndex': tags.unit,
|
||||||
'Literal': tags.literal,
|
'Literal': tags.literal,
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,14 @@
|
||||||
export const
|
export const
|
||||||
Expression = 1,
|
Expression = 1,
|
||||||
Local = 2,
|
Local = 2,
|
||||||
Index = 3,
|
Literal = 4,
|
||||||
Literal = 5,
|
Global = 5,
|
||||||
Global = 6,
|
Radical = 6,
|
||||||
Radical = 7,
|
Filter = 19,
|
||||||
Filter = 20,
|
ComplexIndex = 20,
|
||||||
ComplexIndex = 21,
|
PrefixD = 25,
|
||||||
PrefixD = 26,
|
PrefixI = 26,
|
||||||
PrefixI = 27,
|
PrefixR = 28,
|
||||||
PrefixR = 29,
|
Function = 30,
|
||||||
Function = 31,
|
TextFunction = 31,
|
||||||
TextFunction = 32,
|
Predicate = 44
|
||||||
Predicate = 45
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { printTree } from '@/utils/codemirror';
|
||||||
import { parser } from './parser';
|
import { parser } from './parser';
|
||||||
|
|
||||||
const testData = [
|
const testData = [
|
||||||
['a1', '[Expression[Local[Index]]]'],
|
['a1', '[Expression[Local]]'],
|
||||||
['A1', '[Expression[Global]]'],
|
['A1', '[Expression[Global]]'],
|
||||||
['∅', '[Expression[Literal]]'],
|
['∅', '[Expression[Literal]]'],
|
||||||
['Z', '[Expression[Literal]]'],
|
['Z', '[Expression[Literal]]'],
|
||||||
|
@ -15,7 +15,7 @@ const testData = [
|
||||||
['¬2=2', '[Expression[¬][Literal][=][Literal]]'],
|
['¬2=2', '[Expression[¬][Literal][=][Literal]]'],
|
||||||
['12+41', '[Expression[Literal][+][Literal]]'],
|
['12+41', '[Expression[Literal][+][Literal]]'],
|
||||||
['1+2*5', '[Expression[Literal][+][Literal][*][Literal]]'],
|
['1+2*5', '[Expression[Literal][+][Literal][*][Literal]]'],
|
||||||
['a1∪Z', '[Expression[Local[Index]][∪][Literal]]'],
|
['a1∪Z', '[Expression[Local][∪][Literal]]'],
|
||||||
['Pr1(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
['Pr1(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
||||||
['Pr11(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
['Pr11(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
||||||
['Pr11,21(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
['Pr11,21(X1)', '[Expression[TextFunction[ComplexIndex]][(][Global][)]]'],
|
||||||
|
@ -41,8 +41,9 @@ const testData = [
|
||||||
['∀ξ∈∅ 1=1', '[Expression[∀][Local][∈][Literal][Literal][=][Literal]]'],
|
['∀ξ∈∅ 1=1', '[Expression[∀][Local][∈][Literal][Literal][=][Literal]]'],
|
||||||
[
|
[
|
||||||
'∀ξ1∈β (ξ1≠∅ & ∀ξ2∈β ξ1∩ξ2=∅)',
|
'∀ξ1∈β (ξ1≠∅ & ∀ξ2∈β ξ1∩ξ2=∅)',
|
||||||
'[Expression[∀][Local[Index]][∈][Local][(][Local[Index]][≠][Literal][&][∀][Local[Index]][∈][Local][Local[Index]][∩][Local[Index]][=][Literal][)]]'
|
'[Expression[∀][Local][∈][Local][(][Local][≠][Literal][&][∀][Local][∈][Local][Local][∩][Local][=][Literal][)]]'
|
||||||
]
|
],
|
||||||
|
['∀α1∈α2 1=1', '[Expression[∀][Local][∈][Local][Literal][=][Literal]]']
|
||||||
];
|
];
|
||||||
|
|
||||||
describe('Testing RSParser', () => {
|
describe('Testing RSParser', () => {
|
||||||
|
|
|
@ -3,16 +3,16 @@ import {LRParser} from "@lezer/lr"
|
||||||
import {highlighting} from "./highlight"
|
import {highlighting} from "./highlight"
|
||||||
export const parser = LRParser.deserialize({
|
export const parser = LRParser.deserialize({
|
||||||
version: 14,
|
version: 14,
|
||||||
states: "5lO!sQPOOO!zQPO'#C^OOQO'#Ca'#CaO%uQPO'#DqOOQO'#Dq'#DqO(SQPO'#DeOVQPO'#DrO(ZQPO'#DtO)kQPO'#DuO)sQQO'#DvO)xQPO'#DwO)}QPO'#DxO*SQPO'#DzOOQO'#Ds'#DsO*XQPO'#DsO+uQQO'#C|OOQO'#C|'#C|OOQO'#Dn'#DnO+zQPO'#DnO,PQPO'#DnO,UQPO'#DgOVQPO'#ESO,^QPO'#ESO,cQPO'#ESO,kQPO'#DeOOQO'#Df'#DfO,fQPO'#EVQOQPOOOOQO'#C_'#C_OOQO,58x,58xO(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:^O(ZQPO,5:RO,|QPO'#DmO-TQPO,5:^O.hQPO,5:VO.pQPO'#DlO.uQPO,5:QO/WQPO,5:cO/yQPO'#DmO(ZQPO'#DrO0WQPO,5:`OOQO'#Dm'#DmO(ZQPO,5:aOOQO,5:a,5:aO0`QPO,5:bO,cQPO,5:cO(ZQPO,5:dO,cQPO,5:fOOQO,59h,59hO(ZQPO,5:YO(ZQPO,5:YO&uQPO'#DgOOQO,5:n,5:nO(ZQPO,5:nO(ZQPO'#DkOOQO'#Dh'#DhOOQO'#ET'#ETO0eQPO,5:nOVQPO,5:pOVQPO,5:pOVQPO,5:pOVQPO,5:pO0mQPO'#EXOOQO'#EW'#EWO0rQPO,5:qOOQO1G/x1G/xO2wQPO1G/xO3OQPO1G/xO5SQPO1G/xO7WQPO1G/xO7_QPO1G/xO7fQPO1G/xO8OQPO1G/xO9qQPO1G/mOOQO1G/q1G/qO(ZQPO,5:WOOQO1G/l1G/lO(ZQPO1G/}OOQO1G/z1G/zO:bQPO1G/{O(ZQPO1G/|O:iQPO1G/}O:nQPO1G0OO:uQPO1G0QO:zQPO1G/tO;SQPO1G/tO;ZQPO1G0YO,cQPO,5:oO;cQPO1G0YOOQO1G0[1G0[O=_QPO1G0[O=fQPO1G0[O=mQPO1G0[O(ZQPO,5:sO,fQPO,5:rOVQPO1G0]O>[QPO1G/rO>lQPO7+%iOOQO7+%g7+%gO>sQPO7+%hO(ZQPO7+%iOVQPO7+%jO(ZQPO7+%lOOQO7+%`7+%`OOQO7+%t7+%tOOQO1G0Z1G0ZOOQO'#C^'#C^O>{QPO7+%tO?iQPO1G0_OOQO1G0^1G0^OOQO7+%w7+%wOVQPO<<ITO?sQPO<<ISO?xQPO<<ITO@PQPO'#DyO@eQPO<<IUO@mQPO<<IWO@tQPO<<I`OAcQPOAN>oO(ZQPOAN>nOVQPOAN>oOVQPO,5:eOOQOAN>pAN>pOVQPOAN>rOOQOG24ZG24ZOAtQPOG24YOA{QPOG24ZOB^QPO1G0POBrQPOG24^OByQPOG24^OOQOLD)tLD)tOOQOLD)uLD)uOOQOLD)xLD)xO(ZQPOLD)xOC[QPO!$'MdOOQO!)9CO!)9COO;cQPO,5:^O;cQPO,5:^O;cQPO,5:^O;cQPO,5:^O;cQPO,5:^O;cQPO,5:^O;cQPO,5:^O;cQPO,5:^OCcQPO1G/xOE[QPO1G/xOIWQPO1G/xOKbQPO1G/xOKiQPO1G/xOKpQPO1G/xOKwQPO1G/x",
|
states: "3UO!sQPOOOOQO'#C`'#C`O#lQPO'#DoOOQO'#Do'#DoO%yQPO'#DdOVQPO'#DpO'_QPO'#DrO'fQPO'#DsO'nQQO'#DtO'sQPO'#DuO'xQPO'#DvO'}QPO'#DxOOQO'#Dq'#DqO(SQPO'#DqO)pQQO'#C{OOQO'#C{'#C{OOQO'#Dk'#DkO)uQPO'#DkO)zQPO'#DkO*PQPO'#DfOVQPO'#EQO*XQPO'#EQO*^QPO'#EQO*fQPO'#DdOOQO'#De'#DeO*wQPO'#ETQOQPOOO*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:[O*|QPO,5:QO+TQPO'#DjO+[QPO,5:[O,oQPO,5:SO,wQPO'#DiO,|QPO,5:PO-_QPO,5:aO.QQPO'#DjO*|QPO'#DpO._QPO,5:^OOQO'#Dj'#DjO*|QPO,5:_OOQO,5:_,5:_O.gQPO,5:`O*^QPO,5:aO*|QPO,5:bO*^QPO,5:dOOQO,59g,59gO*|QPO,5:VO*|QPO,5:VO$lQPO'#DfOOQO,5:l,5:lO*|QPO,5:lO*|QPO'#DhOOQO'#Dg'#DgOOQO'#ER'#ERO.lQPO,5:lOVQPO,5:nOVQPO,5:nOVQPO,5:nOVQPO,5:nO.tQPO'#EVOOQO'#EU'#EUO.yQPO,5:oOOQO1G/v1G/vO2jQPO1G/vO2qQPO1G/vO6aQPO1G/vO:PQPO1G/vO:WQPO1G/vO:_QPO1G/vO:fQPO1G/vO>QQPO1G/lOOQO1G/n1G/nO*|QPO,5:TOOQO1G/k1G/kO*|QPO1G/{OOQO1G/x1G/xO>qQPO1G/yO*|QPO1G/zO>xQPO1G/{O>}QPO1G/|O?UQPO1G0OO?ZQPO1G/qO?cQPO1G/qO?jQPO1G0WO*^QPO,5:mO*|QPO1G0WOOQO1G0Y1G0YO@^QPO1G0YO@eQPO1G0YO@lQPO1G0YO*|QPO,5:qO*wQPO,5:pOVQPO1G0ZOAZQPO1G/oOAkQPO7+%gOOQO7+%e7+%eOArQPO7+%fO*|QPO7+%gOVQPO7+%hO*|QPO7+%jOOQO7+%]7+%]OOQO7+%r7+%rOOQO1G0X1G0XOAzQPO7+%rOBhQPO1G0]OOQO1G0[1G0[OOQO7+%u7+%uOVQPO<<IROBrQPO<<IQOBwQPO<<IROCOQPO'#DwOCdQPO<<ISOClQPO<<IUOCsQPO<<I^ODbQPOAN>mO*|QPOAN>lOVQPOAN>mOVQPO,5:cOOQOAN>nAN>nOVQPOAN>pOOQOG24XG24XODsQPOG24WODzQPOG24XOE]QPO1G/}OEqQPOG24[OExQPOG24[OOQOLD)rLD)rOOQOLD)sLD)sOOQOLD)vLD)vO*|QPOLD)vOFZQPO!$'MbOOQO!)9B|!)9B|",
|
||||||
stateData: "NR~O!WOS~OSUOUSOVSOaVOcWOdXOjYOkZOm[OobO|eO}fO!OgO!PgO!]PO!^QO!cQO!dQO!o_O!p_O!q`O!r`O!s`O!t`O~OfjO~PVO!^lOWQXXQXYQXZQX[QX]QX^QX_QXhQXnQXqQXrQXsQXtQXuQXvQXwQXxQXyQXzQX{QX!UQX!uQXbQX!QQX!RQX!SQX!TQX`QXiQXgQXlQX~OW!eXX!eXY!eXZ!eX[!eX]!eX^!eX_!eX!u!eXb!eX~Oh!eXn![Xq![Xr!eXs!eXt!eXu!eXv!eXw!eXx!eXy!eXz!eX{!eX!U!eX~P%TOWnOXoOYpOZqO[rO]sO^tO_uOhvOrvOsvOtvOuvOvvOwvOxvOyvOzvO{vO~O!U!XX~P&uOS!OOUSOVSOaVOcWOdXOjYOkZOm[OobO!]PO!^QO!cQO!dQO!o_O!p_O!q`O!r`O!s`O!t`O~OS!ROcWO~Oe!TO~Oa!UO~Oa!VO~Oa!WO~OW!gXX!gXY!gXZ!gX[!gX]!gX^!gX_!gXh!gXn![Xq![Xr!gXs!gXt!gXu!gXv!gXw!gXx!gXy!gXz!gX{!gX!U!gX!u!gXb!gX~Oe!XO~Of!YO~OS!ZO~OnvOqvO~Of!^O~OS!_O!]PO~O!Q!cO!R!dO!S!eO!T!fO!U!XX~O!u!aX~P&uO`!jOW!bXX!bXY!bXZ!bX[!bX]!bX^!bX_!bXh!bXr!bXs!bXt!bXu!bXv!bXw!bXx!bXy!bXz!bX{!bX!u!bX~O`!sO!u!aX~O!u!tO~O`!uO!Q!cO!R!dO!S!eO!T!fO~Oh!vO~P%TOWnOXoOYpOZqO[rO]sO^tO_uO~Ob!aX!u!aXg!aX~P/_Ob!wO!u!tO~Of!yO~Oh#RO!u#QO~Oh#WO~Og#YO!u#XO~OWnOY!fiZ!fi[!fi]!fi^!fi_!fih!fir!fis!fit!fiu!fiv!fiw!fix!fiy!fiz!fi{!fi!U!fi`!fi!u!fib!fi!Q!fi!R!fi!S!fi!T!fii!fig!fil!fi~OX!fi~P0zOXoO~P0zOWnOXoOYpO_uO[!fi]!fi^!fih!fir!fis!fit!fiu!fiv!fiw!fix!fiy!fiz!fi{!fi!U!fi`!fi!u!fib!fi!Q!fi!R!fi!S!fi!T!fii!fig!fil!fi~OZ!fi~P3VOWnOXoOYpOZqO^tO_uO]!fih!fir!fis!fit!fiu!fiv!fiw!fix!fiy!fiz!fi{!fi!U!fi`!fi!u!fib!fi!Q!fi!R!fi!S!fi!T!fii!fig!fil!fi~O[!fi~P5ZO[rO~P5ZOZqO~P3VOZ!fi[!fi]!fi^!fi_!fi~OWnOXoOYpOh!fir!fis!fit!fiu!fiv!fiw!fix!fiy!fiz!fi{!fi!U!fi`!fi!u!fib!fi!Q!fi!R!fi!S!fi!T!fii!fig!fil!fi~P7mO!Q!Zi!R!Zi!S!Zi!T!Zi!U!Zi`!Zib!Zil!Zii!Zi~P/_O`#]O~P/_Oh#_O~Oi#`O~P/_On#aO~Og#bO!u!tO~O`#bO~P/_Og#cO!u!tO~OS!OOUSOVSOaVOcWOdXOjYOkZOm[OobO!]#eO!^QO!cQO!dQO!o_O!p_O!q`O!r`O!s`O!t`O~O!Q!cO!S!xi!T!xi!U!xi`!xib!xil!xii!xi~O!R!xi~P<sO!R!dO~P<sO!Q!cO!R!dO!S!eO!T!xi!U!xi`!xib!xil!xii!xi~O`!`i!u!`ib!`ig!`i~P/_Oi#jO~P/_Og#kO!u!tO~OW$TOX$UOY$VOZ$WO[$XO]$YO^$ZO_$[O~PVOg!{i!u!{i~P/_OS#rO~Oi#sO~P/_O!Q!cO!R!dO!S!eO!T!fOb!mXl!mX~Ob#uOl#tO~Oi#vO~P/_O!Q!cO!R!dO!S!eO!T!fO!U!vy`!vyb!vyl!vyi!vy~Ob#wO!Q!cO!R!dO!S!eO!T!fO~O`#}O~P/_Ob$OO!Q!cO!R!dO!S!eO!T!fO~O!Q!cO!R!dO!S!eO!T!fOb!mil!mi~Ob$PO~P&uOi$QO!Q!cO!R!dO!S!eO!T!fO~Ob$SO~P/_OW$TOS!fiU!fiV!fiX!fiY!fia!fic!fid!fij!fik!fim!fio!fi|!fi}!fi!O!fi!P!fi!]!fi!^!fi!c!fi!d!fi!o!fi!p!fi!q!fi!r!fi!s!fi!t!fi~P7mOW$TOX$UOS!fiU!fiV!fiY!fia!fic!fid!fij!fik!fim!fio!fi|!fi}!fi!O!fi!P!fi!]!fi!^!fi!c!fi!d!fi!o!fi!p!fi!q!fi!r!fi!s!fi!t!fi~P7mOW$TOX$UOY$VO_$[OS!fiU!fiV!fi[!fi]!fi^!fia!fic!fid!fij!fik!fim!fio!fi|!fi}!fi!O!fi!P!fi!]!fi!^!fi!c!fi!d!fi!o!fi!p!fi!q!fi!r!fi!s!fi!t!fi~OZ!fi~PGTOW$TOX$UOY$VOZ$WO^$ZO_$[OS!fiU!fiV!fi]!fia!fic!fid!fij!fik!fim!fio!fi|!fi}!fi!O!fi!P!fi!]!fi!^!fi!c!fi!d!fi!o!fi!p!fi!q!fi!r!fi!s!fi!t!fi~O[!fi~PI_O[$XO~PI_OZ$WO~PGTOW$TOX$UOY$VOS!fiU!fiV!fia!fic!fid!fij!fik!fim!fio!fi|!fi}!fi!O!fi!P!fi!]!fi!^!fi!c!fi!d!fi!o!fi!p!fi!q!fi!r!fi!s!fi!t!fi~P7mOd!o}oUV!q!r!s!t!p!]mkjk~",
|
stateData: "Fs~O!VOS~OQQORTOTROURO`UObVOcWOiXOjYOlZOnaO{dO|eO}fO!OfO!`PO!aPO!bPO!m^O!n^O!o_O!p_O!q_O!r_O~OeiO~PVOV!cXW!cXX!cXY!cXZ!cX[!cX]!cX^!cX!s!cXa!cX~Og!cXm!ZXp!ZXq!cXr!cXs!cXt!cXu!cXv!cXw!cXx!cXy!cXz!cX!T!cX~P!zOVkOWlOXmOYnOZoO[pO]qO^rOgsOqsOrsOssOtsOusOvsOwsOxsOysOzsO~O!T!WX~P$lOR{OTROURO`UObVOcWOiXOjYOlZOnaO!`PO!aPO!bPO!m^O!n^O!o_O!p_O!q_O!r_O~OQyO~P&QOR!OObVO~Od!QO~O`!RO~O`!SO~O`!TO~OV!eXW!eXX!eXY!eXZ!eX[!eX]!eX^!eXg!eXm!ZXp!ZXq!eXr!eXs!eXt!eXu!eXv!eXw!eXx!eXy!eXz!eX!T!eX!s!eXa!eX~Od!UO~Oe!VO~OR!WO~OmsOpsO~Oe!ZO~OQ!]OR![O~O!P!`O!Q!aO!R!bO!S!cO!T!WX~OQ!dO~OQRO~P&QO!s!^X~P$lO_!gOV!_XW!_XX!_XY!_XZ!_X[!_X]!_X^!_Xg!_Xq!_Xr!_Xs!_Xt!_Xu!_Xv!_Xw!_Xx!_Xy!_Xz!_X!s!_X~O_!pO!s!^X~O!s!qO~O_!rO!P!`O!Q!aO!R!bO!S!cO~Og!sO~P!zOVkOWlOXmOYnOZoO[pO]qO^rO~Oa!^X!s!^Xf!^X~P-fOa!tO!s!qO~Oe!vO~Og#OO!s!}O~Og#TO~Of#VO!s#UO~OVkOX!diY!diZ!di[!di]!di^!dig!diq!dir!dis!dit!diu!div!diw!dix!diy!diz!di!T!di_!di!s!dia!di!P!di!Q!di!R!di!S!dih!dif!diQ!diR!diT!diU!di`!dib!dic!dii!dij!dil!din!di{!di|!di}!di!O!di!`!di!a!di!b!di!m!di!n!di!o!di!p!di!q!di!r!dik!di~OW!di~P/ROWlO~P/ROVkOWlOXmO^rOZ!di[!di]!dig!diq!dir!dis!dit!diu!div!diw!dix!diy!diz!di!T!di_!di!s!dia!di!P!di!Q!di!R!di!S!dih!dif!diQ!diR!diT!diU!di`!dib!dic!dii!dij!dil!din!di{!di|!di}!di!O!di!`!di!a!di!b!di!m!di!n!di!o!di!p!di!q!di!r!dik!di~OY!di~P2xOVkOWlOXmOYnO]qO^rO[!dig!diq!dir!dis!dit!diu!div!diw!dix!diy!diz!di!T!di_!di!s!dia!di!P!di!Q!di!R!di!S!dih!dif!diQ!diR!diT!diU!di`!dib!dic!dii!dij!dil!din!di{!di|!di}!di!O!di!`!di!a!di!b!di!m!di!n!di!o!di!p!di!q!di!r!dik!di~OZ!di~P6hOZoO~P6hOYnO~P2xOVkOWlOXmOY!diZ!di[!di]!di^!dig!diq!dir!dis!dit!diu!div!diw!dix!diy!diz!di!T!di_!di!s!dia!di!P!di!Q!di!R!di!S!dih!dif!diQ!diR!diT!diU!di`!dib!dic!dii!dij!dil!din!di{!di|!di}!di!O!di!`!di!a!di!b!di!m!di!n!di!o!di!p!di!q!di!r!dik!di~O!P!Yi!Q!Yi!R!Yi!S!Yi!T!Yi_!Yia!Yik!Yih!Yi~P-fO_#YO~P-fOg#[O~Oh#]O~P-fOm#^O~Of#_O!s!qO~O_#_O~P-fOf#`O!s!qO~O!P!`O!R!vi!S!vi!T!vi_!via!vik!vih!vi~O!Q!vi~P?rO!Q!aO~P?rO!P!`O!Q!aO!R!bO!S!vi!T!vi_!via!vik!vih!vi~O_!]i!s!]ia!]if!]i~P-fOh#fO~P-fOf#gO!s!qO~OVkOWlOXmOYnOZoO[pO]qO^rO~PVOf!yi!s!yi~P-fOR#nO~Oh#oO~P-fO!P!`O!Q!aO!R!bO!S!cOa!kXk!kX~Oa#qOk#pO~Oh#rO~P-fO!P!`O!Q!aO!R!bO!S!cO!T!ty_!tya!tyk!tyh!ty~Oa#sO!P!`O!Q!aO!R!bO!S!cO~O_#yO~P-fOa#zO!P!`O!Q!aO!R!bO!S!cO~O!P!`O!Q!aO!R!bO!S!cOa!kik!ki~Oa#{O~P$lOh#|O!P!`O!Q!aO!R!bO!S!cO~Oa$OO~P-fOc!m|nTU!o!p!q!r!nQljij~",
|
||||||
goto: "0m!|PP!}$aP$dPPPPPPPPPPPPPPPPPPPPPPPPPP%hPPPPPPPPPPPPPPPPPPPPPP&l&r'l'|PP(j)v*R*dPP$d,x$d.O/S.O.O.O0Z.OPPPPPPP'l0^'l0a0d0glROUe!c!d!e!f#Y#`#f#j#s#t#v!dSnopqrstuv!O!R!V!Y!Z!^!_!t!v!y#R#W#_#a#r$Q$T$U$V$W$X$Y$Z$[Q|VW!`g!U!W#QT!gj#XRmP#TaOUVenopqrstuv!O!R!V!Y!Z!^!_!c!d!e!f!t!v!y#R#W#Y#_#`#a#f#j#r#s#t#v$Q$T$U$V$W$X$Y$Z$[#TcOUVenopqrstuv!O!R!V!Y!Z!^!_!c!d!e!f!t!v!y#R#W#Y#_#`#a#f#j#r#s#t#v$Q$T$U$V$W$X$Y$Z$[QkOR#i#YShO#YQ{UQ!]eQ#S!cQ#T!dQ#U!eQ#V!fQ#m#`Q#p#fQ#q#jQ#y#sQ#z#tR#|#vmiOUe!c!d!e!f#Y#`#f#j#s#t#vldOUe!c!d!e!f#Y#`#f#j#s#t#vQ!agQ!z!UQ!|!WR#d#Q!f]Vnopqrstuv!O!R!V!Y!Z!^!_!t!v!y#R#W#_#a#r$Q$T$U$V$W$X$Y$Z$[l^OUe!c!d!e!f#Y#`#f#j#s#t#vX!`g!U!W#QUyU!O!_X!QV!Y!^!yUzU!O!_Q!PVQ!}!YQ#P!^R#^!ySTO#YQwU[}V!O!Y!^!_!yd![e!c!d!e!f#`#f#j#s#tS!jn$TQ!koQ!lpQ!mqQ!nrQ!osQ!ptQ!quQ!rvQ!x!RQ!{!VQ#O!ZQ#Z!tQ#[!vQ#f#RQ#g#WQ#l#_Q#o#aQ#x#rQ#{#vQ$R$QQ$]$UQ$^$VQ$_$WQ$`$XQ$a$YQ$b$ZR$c$[#OaOVenopqrstuv!R!V!Y!Z!^!_!c!d!e!f!t!v!y#R#W#Y#_#`#a#f#j#r#s#t#v$Q$T$U$V$W$X$Y$Z$[TxU!O#T]OUVenopqrstuv!O!R!V!Y!Z!^!_!c!d!e!f!t!v!y#R#W#Y#_#`#a#f#j#r#s#t#v$Q$T$U$V$W$X$Y$Z$[#S]OUVenopqrstuv!O!R!V!Y!Z!^!_!c!d!e!f!t!v!y#R#W#Y#_#`#a#f#j#r#s#t#v$Q$T$U$V$W$X$Y$Z$[R!SWR#n#`R!bgRkOR!ijQ!hjR#h#X",
|
goto: "-l!zPPPP!{PPPPPPPPPPPPPPPPPPPPPPPPPP#wPPPPPPPPPPPPPPPPPPPPPP$s$y%s&T&q'u(Q(cPPP!{*a!{+_,Z+_+_+_-Y+_PPPPPPP%s-]%s-`-c-f!s`OTUdklmnopqrs{!O!S!V!W!Z![!`!a!b!c!q!s!v#O#T#V#[#]#^#b#f#n#o#p#r#|!sbOTUdklmnopqrs{!O!S!V!W!Z![!`!a!b!c!q!s!v#O#T#V#[#]#^#b#f#n#o#p#r#|QjOR#e#VSgO#VQxTQ!YdQ#P!`Q#Q!aQ#R!bQ#S!cQ#i#]Q#l#bQ#m#fQ#u#oQ#v#pR#x#rmhOTd!`!a!b!c#V#]#b#f#o#p#rlcOTd!`!a!b!c#V#]#b#f#o#p#rQ!^fQ!w!RQ!y!TR#a!}!U[Uklmnopqrs{!O!S!V!W!Z![!q!s!v#O#T#[#^#n#|l]OTd!`!a!b!c#V#]#b#f#o#p#rX!]f!R!T!}UvT{![X}U!V!Z!vUwT{![Q|UQ!z!VQ!|!ZR#Z!vSSO#VQtT[zU{!V!Z![!vd!Xd!`!a!b!c#]#b#f#o#pQ!gkQ!hlQ!imQ!jnQ!koQ!lpQ!mqQ!nrQ!osQ!u!OQ!x!SQ!{!WQ#W!qQ#X!sQ#b#OQ#c#TQ#h#[Q#k#^Q#t#nQ#w#rR#}#|!n`OUdklmnopqrs!O!S!V!W!Z![!`!a!b!c!q!s!v#O#T#V#[#]#^#b#f#n#o#p#r#|TuT{!s[OTUdklmnopqrs{!O!S!V!W!Z![!`!a!b!c!q!s!v#O#T#V#[#]#^#b#f#n#o#p#r#|!r[OTUdklmnopqrs{!O!S!V!W!Z![!`!a!b!c!q!s!v#O#T#V#[#]#^#b#f#n#o#p#r#|R!PVR#j#]R!_fRjOR!fiQ!eiR#d#U",
|
||||||
nodeNames: "⚠ Expression Local Index ( Literal Global Radical + - * ∪ \\ ∆ ∩ × ) { } ℬ Filter ComplexIndex [ ] ∈ | PrefixD PrefixI ; PrefixR := Function TextFunction :∈ ∉ ⊆ ⊄ ⊂ > ≥ < ≤ ≠ = ¬ Predicate ∀ ∃ ⇔ ⇒ ∨ &",
|
nodeNames: "⚠ Expression Local ( Literal Global Radical + - * ∪ \\ ∆ ∩ × ) { } ℬ Filter ComplexIndex [ ] ∈ | PrefixD PrefixI ; PrefixR := Function TextFunction :∈ ∉ ⊆ ⊄ ⊂ > ≥ < ≤ ≠ = ¬ Predicate ∀ ∃ ⇔ ⇒ ∨ &",
|
||||||
maxTerm: 89,
|
maxTerm: 87,
|
||||||
propSources: [highlighting],
|
propSources: [highlighting],
|
||||||
skippedNodes: [0],
|
skippedNodes: [0],
|
||||||
repeatNodeCount: 0,
|
repeatNodeCount: 0,
|
||||||
tokenData: "4i~R!jX^%spq%svw&hxy&myz&rz{&w{|&||}'R}!O'W!Q!R']!R[!h!i)d!k!l)z!r!s*P!t!u*g!u!v(|!v!w(|!z!{(|!|!}*w!}#O*|#O#P+R#P#Q+W#R#S+]#T#U+]#U#V+h#V#W,z#W#X.Z#X#d+]#d#e0a#e#f+]#f#g1P#g#o+]#o#p2Q#p#q2V#q#r2[#y#z%s$f$g%s$r$s2a%o%p2f5i6S+]#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s% l% m2k%%Y%%Z2p%%[%%]2u%&Y%&Z2z%&]%&^3P%&_%&`3U%&`%&a3Z%&b%&c3`%&c%&d3e%'S%'T3j%'T%'U3o%'U%'V3t%(^%(_3y%(b%(c4O%(c%(d4T%)Q%)R4Y%)S%)T4_%)U%)V4d&FU&FV%s~%xY!W~X^%spq%s#y#z%s$f$g%s#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s&FU&FV%s~&mO!T~~&rOS~~&wO`~~&|OY~~'ROW~~'WO!u~~']OX~P'bP!^P!Q![']R'lQeQ!^P|}'r!Q!['eQ'uP!R!['xQ'}QeQ|}'r!Q!['x~(WQ!_!`(^%&b%&c(c~(cOn~~(hOq~~(mOl~~(rOx~~(wO{~~(|Ov~~)PP!Q![)S~)XPU~!Q![)S~)aPj~!Q![)S~)gQ!Q![)m#]#^)u~)rPo~!Q![)m~)zOd~~*POk~~*SQ!Q![*Y#f#g*b~*_P}~!Q![*Y~*gO!o~~*lPm~!Q![*o~*tPV~!Q![*o~*|O!d~~+ROf~~+WO[~~+]Og~~+bQ!]~#T#o+]5i6S+]~+mS!]~#T#c+]#c#d+y#d#o+]5i6S+]~,OS!]~#T#c+]#c#d,[#d#o+]5i6S+]~,aS!]~#T#`+]#`#a,m#a#o+]5i6S+]~,tQ!r~!]~#T#o+]5i6S+]~-PR!]~#T#U-Y#U#o+]5i6S+]~-_S!]~#T#f+]#f#g-k#g#o+]5i6S+]~-pS!]~#T#W+]#W#X-|#X#o+]5i6S+]~.TQ!q~!]~#T#o+]5i6S+]~.`S!]~#T#X+]#X#Y.l#Y#o+]5i6S+]~.qS!]~#T#U+]#U#V.}#V#o+]5i6S+]~/SS!]~#T#c+]#c#d/`#d#o+]5i6S+]~/eS!]~#T#c+]#c#d/q#d#o+]5i6S+]~/vS!]~#T#`+]#`#a0S#a#o+]5i6S+]~0ZQ!s~!]~#T#o+]5i6S+]~0fS!]~#T#f+]#f#g0r#g#o+]5i6S+]~0yQ!p~!]~#T#o+]5i6S+]~1US!]~#T#X+]#X#Y1b#Y#o+]5i6S+]~1gS!]~#T#W+]#W#X1s#X#o+]5i6S+]~1zQ!t~!]~#T#o+]5i6S+]~2VOa~~2[Oi~~2aOb~~2fO|~~2kO_~~2pOc~~2uO!R~~2zO!Q~~3PO!O~~3UO!P~~3ZO!c~~3`O]~~3eOh~~3jOr~~3oO!S~~3tO^~~3yOZ~~4OOz~~4TOy~~4YOw~~4_Ou~~4dOt~~4iOs~",
|
tokenData: "6P~R!jX^%spq%svw&hxy&myz&rz{&w{|&||}'R}!O'W!Q!R']!R[!h!i)d!k!l)z!r!s*P!t!u*g!u!v(|!v!w(|!z!{(|!|!}*w!}#O*|#O#P+R#P#Q+W#R#S+]#T#U+]#U#V+s#V#W-c#W#X/O#X#d+]#d#e1h#e#f+]#f#g2^#g#o+]#o#p3h#p#q3m#q#r3r#y#z%s$f$g%s$r$s3w%o%p3|5i6S+]#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s% l% m4R%%Y%%Z4W%%[%%]4]%&Y%&Z4b%&]%&^4g%&_%&`4l%&`%&a4q%&b%&c4v%&c%&d4{%'S%'T5Q%'T%'U5V%'U%'V5[%(^%(_5a%(b%(c5f%(c%(d5k%)Q%)R5p%)S%)T5u%)U%)V5z&FU&FV%s~%xY!V~X^%spq%s#y#z%s$f$g%s#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s&FU&FV%s~&mO!S~~&rOR~~&wO_~~&|OX~~'ROV~~'WO!s~~']OW~P'bP!`P!Q![']R'lQdQ!`P|}'r!Q!['eQ'uP!R!['xQ'}QdQ|}'r!Q!['x~(WQ!_!`(^%&b%&c(c~(cOm~~(hOp~~(mOk~~(rOw~~(wOz~~(|Ou~~)PP!Q![)S~)XPT~!Q![)S~)aPi~!Q![)S~)gQ!Q![)m#]#^)u~)rPn~!Q![)m~)zOc~~*POj~~*SQ!Q![*Y#f#g*b~*_P|~!Q![*Y~*gO!m~~*lPl~!Q![*o~*tPU~!Q![*o~*|O!b~~+ROe~~+WOZ~~+]Of~~+bRQ~!Q![+k#T#o+]5i6S+]~+pPQ~!Q![+k~+xTQ~!Q![+k#T#c+]#c#d,X#d#o+]5i6S+]~,^TQ~!Q![+k#T#c+]#c#d,m#d#o+]5i6S+]~,rTQ~!Q![+k#T#`+]#`#a-R#a#o+]5i6S+]~-YR!p~Q~!Q![+k#T#o+]5i6S+]~-hSQ~!Q![+k#T#U-t#U#o+]5i6S+]~-yTQ~!Q![+k#T#f+]#f#g.Y#g#o+]5i6S+]~._TQ~!Q![+k#T#W+]#W#X.n#X#o+]5i6S+]~.uR!o~Q~!Q![+k#T#o+]5i6S+]~/TTQ~!Q![+k#T#X+]#X#Y/d#Y#o+]5i6S+]~/iTQ~!Q![+k#T#U+]#U#V/x#V#o+]5i6S+]~/}TQ~!Q![+k#T#c+]#c#d0^#d#o+]5i6S+]~0cTQ~!Q![+k#T#c+]#c#d0r#d#o+]5i6S+]~0wTQ~!Q![+k#T#`+]#`#a1W#a#o+]5i6S+]~1_R!q~Q~!Q![+k#T#o+]5i6S+]~1mTQ~!Q![+k#T#f+]#f#g1|#g#o+]5i6S+]~2TR!n~Q~!Q![+k#T#o+]5i6S+]~2cTQ~!Q![+k#T#X+]#X#Y2r#Y#o+]5i6S+]~2wTQ~!Q![+k#T#W+]#W#X3W#X#o+]5i6S+]~3_R!r~Q~!Q![+k#T#o+]5i6S+]~3mO`~~3rOh~~3wOa~~3|O{~~4RO^~~4WOb~~4]O!Q~~4bO!P~~4gO}~~4lO!O~~4qO!a~~4vO[~~4{Og~~5QOq~~5VO!R~~5[O]~~5aOY~~5fOy~~5kOx~~5pOv~~5uOt~~5zOs~~6POr~",
|
||||||
tokenizers: [0, 1],
|
tokenizers: [0, 1],
|
||||||
topRules: {"Expression":[0,1]},
|
topRules: {"Expression":[0,1]},
|
||||||
tokenPrec: 2056
|
tokenPrec: 1720
|
||||||
})
|
})
|
||||||
|
|
|
@ -17,8 +17,7 @@
|
||||||
log_and @left,
|
log_and @left,
|
||||||
set_decart @left set_union @left set_intersect @left set_minus @left set_symminus @left,
|
set_decart @left set_union @left set_intersect @left set_minus @left set_symminus @left,
|
||||||
set_bool @right,
|
set_bool @right,
|
||||||
quant @right,
|
quant @right
|
||||||
p1, p2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -43,7 +42,7 @@
|
||||||
Function { "F"$[0-9]+ }
|
Function { "F"$[0-9]+ }
|
||||||
Predicate { "P"$[0-9]+ }
|
Predicate { "P"$[0-9]+ }
|
||||||
Radical { "R"$[0-9]+ }
|
Radical { "R"$[0-9]+ }
|
||||||
local { $[_a-zα-ω]($[a-zα-ω])* }
|
Local { $[_a-zα-ω]($[a-zα-ω])*$[0-9]* }
|
||||||
PrefixR { "R" }
|
PrefixR { "R" }
|
||||||
PrefixI { "I" }
|
PrefixI { "I" }
|
||||||
PrefixD { "D" }
|
PrefixD { "D" }
|
||||||
|
@ -77,7 +76,7 @@
|
||||||
debool
|
debool
|
||||||
red
|
red
|
||||||
smallPr
|
smallPr
|
||||||
local
|
Local
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,13 +109,6 @@ arguments {
|
||||||
declaration {
|
declaration {
|
||||||
Local "∈" setexpr
|
Local "∈" setexpr
|
||||||
}
|
}
|
||||||
Local {
|
|
||||||
!p1 local |
|
|
||||||
!p2 local Index
|
|
||||||
}
|
|
||||||
Index {
|
|
||||||
integer
|
|
||||||
}
|
|
||||||
variable {
|
variable {
|
||||||
Local |
|
Local |
|
||||||
tuple
|
tuple
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
@detectDelim
|
|
||||||
@external propSource highlighting from "./highlight"
|
|
||||||
|
|
||||||
@top Expression { token* }
|
|
||||||
|
|
||||||
@skip { space }
|
|
||||||
|
|
||||||
@tokens {
|
|
||||||
space { @whitespace+ }
|
|
||||||
Index { $[0-9]+ }
|
|
||||||
ComplexIndex { $[1-9](","$[1-9])* }
|
|
||||||
Integer { space$[0-9]+space? }
|
|
||||||
|
|
||||||
bigPr { "Pr" }
|
|
||||||
smallPr { "pr" }
|
|
||||||
filter { "Fi" }
|
|
||||||
card { "card" }
|
|
||||||
bool { "bool" }
|
|
||||||
debool { "debool" }
|
|
||||||
red { "red" }
|
|
||||||
|
|
||||||
ConstructPrefix { "D" | "R" | "I" }
|
|
||||||
|
|
||||||
Global { $[XCSDAPTF]$[0-9]+ }
|
|
||||||
Radical { "R"$[0-9]+ }
|
|
||||||
local { $[_a-zα-ω]$[a-zα-ω]* }
|
|
||||||
|
|
||||||
"(" ")"
|
|
||||||
"[" "]"
|
|
||||||
"{" "}"
|
|
||||||
|
|
||||||
@precedence {
|
|
||||||
filter
|
|
||||||
bigPr
|
|
||||||
Global
|
|
||||||
Radical
|
|
||||||
ConstructPrefix
|
|
||||||
}
|
|
||||||
@precedence {
|
|
||||||
card
|
|
||||||
bool
|
|
||||||
debool
|
|
||||||
red
|
|
||||||
smallPr
|
|
||||||
local
|
|
||||||
}
|
|
||||||
@precedence {
|
|
||||||
Integer
|
|
||||||
space
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TextFunction {
|
|
||||||
bigPr ComplexIndex |
|
|
||||||
smallPr ComplexIndex |
|
|
||||||
filter ComplexIndex |
|
|
||||||
card |
|
|
||||||
bool |
|
|
||||||
debool |
|
|
||||||
red
|
|
||||||
}
|
|
||||||
|
|
||||||
Local {
|
|
||||||
local Index?
|
|
||||||
}
|
|
||||||
|
|
||||||
token {
|
|
||||||
TextFunction |
|
|
||||||
ConstructPrefix |
|
|
||||||
Integer |
|
|
||||||
Global |
|
|
||||||
Radical |
|
|
||||||
Local
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user