[fpc-pascal] fcl-passrc errors
Michael Van Canneyt
michael at freepascal.org
Sun Oct 13 18:30:32 CEST 2019
On Sun, 13 Oct 2019, Ryan Joseph wrote:
>> To be clear:
>>
>> here I meant that 'currently that will definitely not be done in fcl-passrc.'
>
>
> This is a problem then because I wanted to make a language server for FPC
> but if the parser doesn’t understand accepted FPC syntax the whole thing
> falls apart. Can you make an FPC complient mode or something then? IMO
> if the parser included with the compiler doesn’t understand the same
> syntax as the compiler then we’re in trouble.
It should understand the same syntax, 100%.
If it does not, that's definitely a bug.
The missing extension you can easily fix by explicitly adding it.
But of course I will add it to fcl-passrc, I simply was not aware of the
.inc. The documentation also must be adapted for this.
> Here’s basically what I’m doing to parse. Nothing special and the engine is just a template that does just the minimum (like the examples in the package).
>
> module := ParseSource(engine, ’bugs.pas', 'darwin', 'x86_64');
At first sight, you need to do at least
module := ParseSource(engine, ’-Mdelphi bugs.pas', 'darwin', 'x86_64');
Because for the language constructs you are using you need mode delphi.
(unless you have the necessary $mode and $modeswitch statements in code)
The parser by default does not enable mode delphi or objfpc for that matter,
so you need to specify that on the 'command-line'.
> - This is a new version from 3 days ago.
> - The record sections failed because they are inside a function. If I pull the record out of the function they work.
Ahah...
That needs to be tested then. This seems to be a bug. Can you please create
a bug with a compilable example ?
> - Please test the operator because I don’t think the parser understands it.
OK, that's strange, because I can see the code for handling operators, and
operators are definitely parsed, the RTL/FCL are riddled with operators...
Then this needs to be tested and possibly fixed too.
Please report this also as a bug with a testcase, so I don't forget.
I'll try to fix them ASAP.
Michael.
More information about the fpc-pascal
mailing list