@@ -54,7 +54,7 @@ local CharMapSign = stringToCharMap '+-'
5454local  CharMapSB  =  stringToCharMap  ' ao|~&=<>.*/%^+-' 
5555local  CharMapSU  =  stringToCharMap  ' n#~!-' 
5656local  CharMapSimple  =  stringToCharMap  ' .:([\' "{' 
57- local  CharMapStrSH  =  stringToCharMap  ' \' "' 
57+ local  CharMapStrSH  =  stringToCharMap  ' \' "` ' 
5858local  CharMapStrLH  =  stringToCharMap  ' [' 
5959local  CharMapTSep  =  stringToCharMap  ' ,;' 
6060local  CharMapWord  =  stringToCharMap  ' _a-zA-Z\x80 -\xff ' 
@@ -882,18 +882,6 @@ local function parseShortString()
882882 local  startOffset  =  Tokens [Index ]
883883 local  startPos  =  getPosition (startOffset , ' left' 
884884 Index  =  Index  +  2 
885-  --  empty string
886-  if  Tokens [Index + 1 ] ==  mark  then 
887-  local  finishPos  =  getPosition (Tokens [Index ], ' right' 
888-  Index  =  Index  +  2 
889-  return  {
890-  type  =  ' string' 
891-  start  =  startPos ,
892-  finish  =  finishPos ,
893-  [1 ] =  ' ' 
894-  [2 ] =  mark ,
895-  }
896-  end 
897885 local  stringIndex  =  0 
898886 local  currentOffset  =  startOffset  +  1 
899887 while  true  do 
@@ -1024,13 +1012,41 @@ local function parseShortString()
10241012 :: CONTINUE:: 
10251013 end 
10261014 local  stringResult  =  tconcat (stringPool , ' ' 1 , stringIndex )
1027-  return  {
1015+  local   str   =  {
10281016 type  =  ' string' 
10291017 start  =  startPos ,
10301018 finish  =  lastRightPosition (),
10311019 [1 ] =  stringResult ,
10321020 [2 ] =  mark ,
10331021 }
1022+  if  mark  ==  ' `'  then 
1023+  if  State .options .nonstandardSymbol  and  State .options .nonstandardSymbol [mark ] then 
1024+  else 
1025+  pushError  {
1026+  type  =  ' ERR_NONSTANDARD_SYMBOL' 
1027+  start  =  startPos ,
1028+  finish  =  str .finish ,
1029+  info  =  {
1030+  symbol  =  ' "' 
1031+  },
1032+  fix  =  {
1033+  title  =  ' FIX_NONSTANDARD_SYMBOL' 
1034+  symbol  =  ' "' 
1035+  {
1036+  start  =  startPos ,
1037+  finish  =  startPos  +  1 ,
1038+  text  =  ' "' 
1039+  },
1040+  {
1041+  start  =  str .finish  -  1 ,
1042+  finish  =  str .finish ,
1043+  text  =  ' "' 
1044+  },
1045+  }
1046+  }
1047+  end 
1048+  end 
1049+  return  str 
10341050end 
10351051
10361052local  function  parseString ()
0 commit comments