RomanYankovsky / DelphiAST

Abstract syntax tree builder for Delphi
Mozilla Public License 2.0
271 stars 116 forks source link

Class operators are labeled as functions #236

Open JBontes opened 6 years ago

JBontes commented 6 years ago

Fix:

type
  TAttributeValue = (atAsm, atTrue, atFunction, atProcedure, atOperator, atClassOf, atClass,
    atConst, atConstructor, atDestructor, atEnum, atInterface, atNil, atNumeric,
    atOut, atPointer, atName, atString, atSubRange, atVar, atType{ExplicitType},
    atObject, atSealed, atAbstract);

procedure TPasSyntaxTreeBuilder.ClassFunctionHeading;
begin
  if SameText(FLexer.Token,'operator') then FStack.Peek.SetAttribute(anKind, AttributeValues[atOperator])
  else FStack.Peek.SetAttribute(anKind, AttributeValues[atFunction]);
  inherited;
end;