consultingwerk / proparse

Proparse, forked from http://www.oehive.org/proparse/
Other
18 stars 9 forks source link

Issue with block label #52

Open DanielBaciu opened 3 years ago

DanielBaciu commented 3 years ago

When there is a preprocessor between block level and block itself poparse generates an error.

Code: ROUTE-BLOCK: {&proparse prolint-nowarn(use-index)} do: . end.

Error parsing blockLabel.p

Original Exception: unexpected token: ROUTE-BLOCK

C:\Analiza\Parse issue 15_bloc_label\blockLabel.p:2:3: unexpected token: ROUTE-BLOCK

at com.joanju.proparse.ProParser.blockorstate(ProParser.java:568)
at com.joanju.proparse.ProParser.program(ProParser.java:120)
at com.joanju.proparse.DoParse.doParse(DoParse.java:202)
at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:270)
at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:226)
at org.prorefactor.treeparser.ParseUnit.treeParser01(ParseUnit.java:348)
at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source)

blockLabel.zip

mikefechner commented 3 years ago

What is the purpose of anything between the block label and the block?

We won't spend time for purely academical syntax constructs.

DanielBaciu commented 3 years ago

Whet we have between label and block is a prolint directive, which needs to be just before for each block.

Here is the code we used:

 ToteRoute_Loop:
  {&_proparse_ prolint-nowarn(use-index)}
  for each bfRunnoToteLink

On compile time this directive is empty resulting an empty line between.

gquerret commented 3 years ago

@DanielBaciu Note that this issue (and the other ones that have been reported the same day) are already fixed in the sonar-openedge implementation of Proparse.