on master help sign in
fixed keyword exclusion
commitbd8a7b73d6156941351929b065bf02adf75445e9 authoriko <mail@iko.soy> dateTue 30 Jul 2024, 07:45 (2 years ago) parent68d0ddd
1 file changed+41−26
desk/lib/lua/parser.hoon+41−26
desk/lib/lua/parser.hoon+41−26
@@ -766,7 +766,7 @@ apex
766766 ++ name-fst-char ;~(pose alf:ab (just '_'))
767767 --
768768 %+ cook |= =tape (crip tape)
769− ;~(less ;~(plug keyword ;~(less name-char (easy ~))) ;~(plug name-fst-char (star name-char)))
769+ ;~(less keyword ;~(plug name-fst-char (star name-char)))
770770++ bind
771771 |* =mold
772772 |* [prev=rule cont=$-(mold rule)]
@@ -900,31 +900,39 @@ apex
900900 ;< res=_p:(need q:$:$:inner) bind (inner closing)
901901 %+ cold res closing
902902++ keyword
903− %+ cold ~
904− ;~ pose
905− (jest 'and')
906− (jest 'break')
907− (jest 'do')
908− (jest 'else')
909− (jest 'elseif')
910− (jest 'end')
911− (jest 'false')
912− (jest 'for')
913− (jest 'function')
914− (jest 'goto')
915− (jest 'if')
916− (jest 'in')
917− (jest 'local')
918− (jest 'nil')
919− (jest 'not')
920− (jest 'or')
921− (jest 'repeat')
922− (jest 'return')
923− (jest 'then')
924− (jest 'true')
925− (jest 'until')
926− (jest 'while')
927− ==
903+ =<
904+ %+ sear
905+ |= word=tape
906+ ^- (unit ~)
907+ ?: (elem word keyword-names) `~ ~
908+ (plus alf:ab)
909+ |%
910+ ++ keyword-names
911+ :~
912+ "and"
913+ "break"
914+ "do"
915+ "else"
916+ "elseif"
917+ "end"
918+ "false"
919+ "for"
920+ "function"
921+ "goto"
922+ "if"
923+ "in"
924+ "local"
925+ "nil"
926+ "not"
927+ "or"
928+ "repeat"
929+ "return"
930+ "then"
931+ "true"
932+ "until"
933+ "while"
934+ ==
935+ --
928936++ tnee
929937 |* [=term gar=mold sef=rule]
930938 |= tub=nail
@@ -936,6 +944,13 @@ apex
936944 ?~ q.res
937945 ~& [term %nope] res
938946 ~& > [term %ok] res
947+++ neg
948+ |* =rule
949+ |= =nail
950+ ^- (like ~)
951+ =/ x (rule nail)
952+ :- p.nail
953+ ?~ q.x `[~ nail] ~
939954++ blok-is-empty
940955 |= =blok
941956 ^- ?