RomanYankovsky / DelphiAST

Abstract syntax tree builder for Delphi
Mozilla Public License 2.0
272 stars 117 forks source link

Can't parse System.Classes.pas #276

Open chuacw opened 5 years ago

chuacw commented 5 years ago

When attempting to parse the RTL's System.Classes.pas in "C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\System.Classes.pas" throws the error: First chance exception at $7744C5AF. Exception class EParserException with message ''Begin' expected found 'initialization''. Process ProjectIndexerResearch.exe (1936)

sglienke commented 3 years ago

This issue is still the case and I found the cause:

DelphiAST cannot handle $IF SizeOf which makes it trip on TMemoryStream.SetCapacity which has two $IF checking SizeOf(LongInt) but no else causing all following routine being treated as nested to that method and eventually failing when arriving at initialization.

bogdanpolak commented 2 years ago

@RomanYankovsky I'd suggest adding help wanted label if you are open for the PR