You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 line
2.1 KiB

  1. unit uengShaderPartComment;
  2. {$mode objfpc}{$H+}
  3. {$I uengShaderFile.inc}
  4. interface
  5. uses
  6. Classes, SysUtils,
  7. uengShaderPart, uengShaderCodePart, uengShaderFileParser;
  8. type
  9. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. TengShaderPartComment = class(TengShaderCodePart)
  11. { Code Loading & Storage }
  12. private
  13. fText: String;
  14. protected
  15. function GetText: String; override;
  16. function ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String; override;
  17. public
  18. class function GetTokenName: String; override;
  19. end;
  20. implementation
  21. uses
  22. uengShaderFileConstants, uengShaderFileTypes;
  23. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  24. //TengShaderPartComment/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  25. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  26. function TengShaderPartComment.GetText: String;
  27. begin
  28. result := TOKEN_CHAR_BEGIN + GetTokenName + fText + TOKEN_CHAR_END;
  29. end;
  30. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. function TengShaderPartComment.ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String;
  32. begin
  33. if (aParams[0].Name <> GetTokenName) then with aParams[0] do
  34. raise EengInvalidToken.Create(ClassName, Name, Line, Col, Filename, self);
  35. if (aParams.Count > 1) then
  36. fText := aParams[1].Name;
  37. result := '';
  38. end;
  39. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  40. class function TengShaderPartComment.GetTokenName: String;
  41. begin
  42. result := TOKEN_CHAR_COMMENT;
  43. end;
  44. end.