@@ -102,15 +102,17 @@ startRule : module EOF;
102102module :
103103 WS ?
104104 endOfLine*
105- (moduleHeader endOfLine*)?
106- moduleConfig? endOfLine*
105+ (moduleHeader endOfLine* | errorWords )?
106+ ( moduleConfig? endOfLine* | errorWords)
107107 moduleAttributes? endOfLine*
108108 moduleDeclarations? endOfLine*
109109 moduleBody? endOfLine*
110110 WS ?
111111;
112112
113- moduleHeader : VERSION WS DOUBLELITERAL WS CLASS ;
113+ errorWords : EW ;
114+
115+ moduleHeader : errorWords? VERSION WS DOUBLELITERAL WS CLASS ;
114116
115117moduleConfig :
116118 BEGIN endOfLine*
@@ -160,6 +162,7 @@ moduleBodyElement :
160162 | propertyLetStmt
161163 | subStmt
162164 | macroStmt
165+ | errorWords
163166;
164167
165168
@@ -238,6 +241,7 @@ blockStmt :
238241 | writeStmt
239242 | implicitCallStmt_InBlock
240243 | implicitCallStmt_InStmt
244+ | errorWords
241245;
242246
243247
@@ -623,7 +627,7 @@ iCS_S_ProcedureOrArrayCall : (ambiguousIdentifier | baseType) typeHint? WS? LPAR
623627
624628iCS_S_MembersCall : (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall)? iCS_S_MemberCall+ dictionaryCallStmt? (WS ? LPAREN subscripts RPAREN )*;
625629
626- iCS_S_MemberCall : (' .' | ' !' ) (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall);
630+ iCS_S_MemberCall : LINE_CONTINUATION ? (' .' | ' !' ) LINE_CONTINUATION ? (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall);
627631
628632iCS_S_DictionaryCall : dictionaryCallStmt;
629633
@@ -769,7 +773,7 @@ ELSEIF: 'ELSEIF';
769773END_ENUM : ' END' WS ' ENUM' ;
770774END_FUNCTION : ' END' WS ' FUNCTION' ;
771775END_IF : ' END' WS ' IF' ;
772- END_PROPERTY : ' END' WS ' PROPERTY' ;
776+ END_PROPERTY : ' END' WS ' PROPERTY' ;
773777END_SELECT : ' END' WS ' SELECT' ;
774778END_SUB : ' END' WS ' SUB' ;
775779END_TYPE : ' END' WS ' TYPE' ;
@@ -936,13 +940,13 @@ fragment DATEVALUEPART : DIGIT+ | MONTHNAME;
936940fragment DATESEPARATOR : WS? [/,-]? WS?;
937941fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION;
938942fragment ENGLISHMONTHNAME: ' JANUARY ' | ' FEBRUARY ' | ' MARCH ' | ' APRIL ' | ' MAY ' | ' JUNE | AUGUST ' | ' SEPTEMBER ' | ' OCTOBER ' | ' NOVEMBER ' | ' DECEMBER ' ;
939- fragment ENGLISHMONTHABBREVIATION: ' JAN ' | ' FEB ' | ' MAR ' | ' APR ' | ' JUN ' | ' JUL ' | ' AUG ' | ' SEP ' | ' OCT ' | ' NOV ' | ' DEC ' ;
943+ fragment ENGLISHMONTHABBREVIATION: ' JAN ' | ' FEB ' | ' MAR ' | ' APR ' | ' JUN ' | ' JUL ' | ' AUG ' | ' SEP ' | ' OCT ' | ' NOV ' | ' DEC ' ;
940944fragment TIMEVALUE : DIGIT+ AMPM | DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?;
941945fragment TIMESEPARATOR : WS? (' :' | ' .' ) WS?;
942946fragment AMPM : WS? (' AM ' | ' PM ' | ' A ' | ' P ' );
943947
944948// whitespace, line breaks, comments, ...
945- LINE_CONTINUATION : [ \t ]+ UNDERSCORE ' \r' ? ' \n' -> skip;
949+ LINE_CONTINUATION : [ \t ]+ UNDERSCORE ' \r' ? ' \n' WS* -> skip;
946950NEWLINE : [\r\n\u2028\u2029 ]+;
947951REMCOMMENT : COLON? REM WS (LINE_CONTINUATION | ~[\r\n\u2028\u2029 ])*;
948952COMMENT : SINGLEQUOTE (LINE_CONTINUATION | ~[\r\n\u2028\u2029 ])*;
@@ -953,6 +957,8 @@ WS : ([ \t] | LINE_CONTINUATION)+;
953957
954958// identifier
955959IDENTIFIER : ~[\]()\r\n\t.,' "|!@#$%^&*\- +:=; ]+ | L_SQUARE_BRACKET (~[!\]\r\n ])+ R_SQUARE_BRACKET;
960+ EW : (.* LINE_CONTINUATION)*? WS;
961+
956962
957963// letters
958964fragment LETTER : [A-Z_\p {L}];
0 commit comments