@@ -212,60 +212,55 @@ private void BuildVariableDefinition()
212212
213213 NextLexem ( ) ;
214214
215- if ( IsUserSymbol ( _lastExtractedLexem ) )
216- {
217- if ( _inMethodScope )
218- {
219- if ( _isStatementsDefined )
220- {
221- AddError ( LocalizedErrors . LateVarDefinition ( ) ) ;
222- return ;
223- }
224- }
225- else
226- {
227- if ( _isMethodsDefined )
228- {
229- AddError ( LocalizedErrors . LateVarDefinition ( ) ) ;
230- return ;
231- }
232- }
233-
234- var symbolicName = _lastExtractedLexem . Content ;
235- CreateChild ( variable , NodeKind . Identifier , _lastExtractedLexem ) ;
236-
237- NextLexem ( ) ;
238- if ( _lastExtractedLexem . Token == Token . Export )
239- {
240- if ( _inMethodScope )
241- {
242- AddError ( LocalizedErrors . ExportedLocalVar ( symbolicName ) ) ;
243- break ;
244- }
245- CreateChild ( variable , NodeKind . ExportFlag , _lastExtractedLexem ) ;
246- NextLexem ( ) ;
247- }
248-
249- if ( _lastExtractedLexem . Token == Token . Comma )
250- {
251- continue ;
252- }
253-
254- if ( _lastExtractedLexem . Token == Token . Semicolon )
255- {
256- NextLexem ( ) ;
257- }
258- else
259- {
260- AddError ( LocalizedErrors . SemicolonExpected ( ) ) ;
261- }
262-
263- }
264- else
265- {
266- AddError ( LocalizedErrors . IdentifierExpected ( ) ) ;
267- }
268-
215+ if ( ! IsUserSymbol ( _lastExtractedLexem ) )
216+ {
217+ AddError ( LocalizedErrors . IdentifierExpected ( ) ) ;
218+ return ;
219+ }
220+
221+ if ( _inMethodScope )
222+ {
223+ if ( _isStatementsDefined )
224+ {
225+ AddError ( LocalizedErrors . LateVarDefinition ( ) ) ;
226+ return ;
227+ }
228+ }
229+ else if ( _isMethodsDefined )
230+ {
231+ AddError ( LocalizedErrors . LateVarDefinition ( ) ) ;
232+ return ;
233+ }
234+
235+ var symbolicName = _lastExtractedLexem . Content ;
236+ CreateChild ( variable , NodeKind . Identifier , _lastExtractedLexem ) ;
237+
238+ NextLexem ( ) ;
239+ if ( _lastExtractedLexem . Token == Token . Export )
240+ {
241+ if ( _inMethodScope )
242+ {
243+ AddError ( LocalizedErrors . ExportedLocalVar ( symbolicName ) ) ;
244+ return ;
245+ }
246+ CreateChild ( variable , NodeKind . ExportFlag , _lastExtractedLexem ) ;
247+ NextLexem ( ) ;
248+ }
249+
250+ if ( _lastExtractedLexem . Token == Token . Comma )
251+ {
252+ continue ;
253+ }
254+
255+ if ( _lastExtractedLexem . Token == Token . Semicolon )
256+ {
257+ NextLexem ( ) ;
258+ }
259+ else
260+ {
261+ AddError ( LocalizedErrors . SemicolonExpected ( ) ) ;
262+ }
263+
269264 break ;
270265 }
271266 }
@@ -286,9 +281,7 @@ private void ApplyAnnotations(AnnotatableNode annotatable)
286281 private void BuildMethodsSection ( )
287282 {
288283 if ( _lastExtractedLexem . Type != LexemType . Annotation
289- && _lastExtractedLexem . Token != Token . Procedure
290- && _lastExtractedLexem . Token != Token . Function
291- && _lastExtractedLexem . Token != Token . Async )
284+ && ! IsStartOfMethod ( _lastExtractedLexem ) )
292285 {
293286 return ;
294287 }
@@ -487,12 +480,11 @@ private bool BuildDefaultParameterValue(NonTerminalNode param, NodeKind nodeKind
487480
488481 if ( LanguageDef . IsLiteral ( _lastExtractedLexem ) )
489482 {
490- string literalText = _lastExtractedLexem . Content ;
491483 if ( hasSign )
492484 {
493485 if ( _lastExtractedLexem . Type == LexemType . NumberLiteral && signIsMinus )
494486 {
495- literalText = '-' + literalText ;
487+ _lastExtractedLexem . Content = '-' + _lastExtractedLexem . Content ;
496488 }
497489 else if ( _lastExtractedLexem . Type == LexemType . StringLiteral
498490 || _lastExtractedLexem . Type == LexemType . DateLiteral )
@@ -502,7 +494,6 @@ private bool BuildDefaultParameterValue(NonTerminalNode param, NodeKind nodeKind
502494 }
503495 }
504496
505- _lastExtractedLexem . Content = literalText ;
506497 CreateChild ( param , nodeKind , _lastExtractedLexem ) ;
507498 NextLexem ( ) ;
508499 }
@@ -861,8 +852,7 @@ private void BuildWhileStatement()
861852 }
862853
863854 private void BuildForStatement ( )
864- {
865- var lexem = _lastExtractedLexem ;
855+ {
866856 NextLexem ( ) ;
867857
868858 NodeKind loopKind ;
@@ -902,8 +892,8 @@ private void BuildCountableForStatement(NonTerminalNode loopNode)
902892 AddError ( LocalizedErrors . IdentifierExpected ( ) ) ;
903893 BuildBatchWithContext ( loopNode , Token . EndLoop ) ;
904894 return ;
905- }
906-
895+ }
896+
907897 var counter = _lastExtractedLexem ;
908898 if ( ! NextExpected ( Token . Equal ) )
909899 {
@@ -1073,7 +1063,8 @@ private void BuildEventHandlerOperation(Token token)
10731063 if ( source == null )
10741064 return ;
10751065
1076- if ( ( source . Kind != NodeKind . DereferenceOperation || ! _lastDereferenceIsWritable ) && source . Kind != NodeKind . IndexAccess )
1066+ if ( ( source . Kind != NodeKind . DereferenceOperation || ! _lastDereferenceIsWritable )
1067+ && source . Kind != NodeKind . IndexAccess )
10771068 {
10781069 AddError ( LocalizedErrors . WrongEventName ( ) ) ;
10791070 return ;
@@ -1151,7 +1142,7 @@ private BslSyntaxNode CallOrVariable(Lexem identifier)
11511142 return BuildDereference ( target ) ;
11521143 }
11531144
1154- private BslSyntaxNode BuildCall ( BslSyntaxNode target , NodeKind callKind )
1145+ private CallNode BuildCall ( BslSyntaxNode target , NodeKind callKind )
11551146 {
11561147 var callNode = new CallNode ( callKind , _lastExtractedLexem ) ;
11571148 callNode . AddChild ( target ) ;
@@ -1200,7 +1191,7 @@ private void BuildCallArgument(NonTerminalNode argsList)
12001191 if ( _lastExtractedLexem . Token == Token . Comma )
12011192 {
12021193 CreateChild ( argsList , NodeKind . CallArgument , _lastExtractedLexem ) ;
1203-
1194+
12041195 BuildLastDefaultArg ( argsList ) ;
12051196 }
12061197 else if ( _lastExtractedLexem . Token != Token . ClosePar )
0 commit comments