@@ -720,32 +720,22 @@ local function parseString(parent)
720720 return str
721721end
722722
723- local function parseCode (parent )
724- local tp , content = peekToken ()
725- if not tp or tp ~= ' code' then
726- return nil
727- end
728- nextToken ()
729- local code = {
730- type = ' doc.type.code' ,
731- start = getStart (),
732- finish = getFinish (),
733- parent = parent ,
734- [1 ] = content ,
735- }
736- return code
737- end
738-
739723local function parseCodePattern (parent )
740724 local tp , pattern = peekToken ()
741- if not tp or tp ~= ' name' then
725+ if not tp or ( tp ~= ' name' and tp ~= ' code ' ) then
742726 return nil
743727 end
744728 local codeOffset
745729 local finishOffset
746730 local content
747- local i = 2
731+ local i = 1
732+ if tp == ' code' then
733+ codeOffset = i
734+ content = pattern
735+ pattern = ' %s'
736+ end
748737 while true do
738+ i = i + 1
749739 local next , nextContent = peekToken (i )
750740 if not next or TokenFinishs [Ci + i - 1 ] + 1 ~= TokenStarts [Ci + i ] then
751741 if codeOffset then
@@ -763,7 +753,7 @@ local function parseCodePattern(parent)
763753 return nil
764754 end
765755 codeOffset = i
766- pattern = pattern .. " %s "
756+ pattern = pattern .. ' %s '
767757 content = nextContent
768758 elseif codeOffset then
769759 -- should be match with Parser "name" mask
@@ -777,12 +767,16 @@ local function parseCodePattern(parent)
777767 else
778768 return nil
779769 end
780- i = i + 1
781770 end
782771 nextToken ()
783772 local start = getStart ()
784- for _ = 2 , finishOffset do
785- nextToken ()
773+ if finishOffset == 1 then
774+ -- code only, no pattern
775+ pattern = nil
776+ else
777+ for _ = 2 , finishOffset do
778+ nextToken ()
779+ end
786780 end
787781 local code = {
788782 type = ' doc.type.code' ,
@@ -846,7 +840,6 @@ function parseTypeUnit(parent)
846840 or parseTable (parent )
847841 or parseTuple (parent )
848842 or parseString (parent )
849- or parseCode (parent )
850843 or parseInteger (parent )
851844 or parseBoolean (parent )
852845 or parseParen (parent )
0 commit comments