2017-03-23 12:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* src/compiler/harbour.y
    * create real function in internal memory instead of dummy flow control
      error for unclosed structures when new function/procedure declaration
      is found just to reset context for farther error reporting. It leaves
      unclosed structure on Bison stack but it's unimportant for us because
      result of such compilation is ignored due to detected errors and this
      modification resolves the problem with ignored pending declarations.

  * src/compiler/harbour.yyc
    * regenerated
This commit is contained in:
Przemysław Czerpak
2017-03-23 12:15:33 +01:00
parent 9eec626663
commit 7bcf8e85db
3 changed files with 3437 additions and 3488 deletions

View File

@@ -10,6 +10,18 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2017-03-23 12:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
* create real function in internal memory instead of dummy flow control
error for unclosed structures when new function/procedure declaration
is found just to reset context for farther error reporting. It leaves
unclosed structure on Bison stack but it's unimportant for us because
result of such compilation is ignored due to detected errors and this
modification resolves the problem with ignored pending declarations.
* src/compiler/harbour.yyc
* regenerated
2017-03-22 09:39 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbdead.c
* src/compiler/hbfix.c

View File

@@ -500,7 +500,7 @@ LineStat : Crlf { $<lNumber>$ = 0; }
| Statement { $<lNumber>$ = 1; }
| Declaration { $<lNumber>$ = 1; }
| Line { $<lNumber>$ = 0; }
| ControlError { $<lNumber>$ = 0; hb_compCheckUnclosedStru( HB_COMP_PARAM, HB_COMP_PARAM->functions.pLast ); }
| /* error */ Function
| error { if( HB_COMP_PARAM->ilastLineErr && HB_COMP_PARAM->ilastLineErr == HB_COMP_PARAM->currLine )
{
yyclearin;
@@ -514,18 +514,6 @@ LineStat : Crlf { $<lNumber>$ = 0; }
}
;
ControlError : FunScopeId FUNCTION IdentName Crlf
| FunScopeId FUNCTION IdentName '(' Params ')' Crlf
| FunScopeId PROCEDURE IdentName Crlf
| FunScopeId PROCEDURE IdentName '(' Params ')' Crlf
;
FunScopeId :
| STATIC
| INIT
| EXIT
;
Statements : LineStat
| Statements LineStat { $<lNumber>$ += $<lNumber>2; }
;

File diff suppressed because it is too large Load Diff