|
- unit uengShaderPartEcho;
-
- {$mode objfpc}{$H+}
- {$I uengShaderFile.inc}
-
- interface
-
- uses
- Classes, SysUtils,
- uengShaderPart, uengShaderFileParser;
-
- type
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- TengShaderPartEcho = class(TengShaderPart)
- { Code Loading & Storage }
- private
- fName: String;
- protected
- function GetText: String; override;
- function ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String; override;
-
- { General }
- public
- class function GetTokenName: String; override;
- end;
-
- implementation
-
- uses
- uengShaderFileConstants, uengShaderFileTypes, uengShaderFileHelper;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //TengShaderPartEcho////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TengShaderPartEcho.GetText: String;
- begin
- result := TOKEN_CHAR_BEGIN + GetTokenName + ' ' + fName + TOKEN_CHAR_END;
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TengShaderPartEcho.ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String;
- begin
- if (aParams[0].Name <> GetTokenName) then with aParams[0] do
- raise EengInvalidToken.Create(ClassName, Name, Line, Col, Filename);
- if (aParams.Count <> 2) then
- raise EengInvalidParamterCount.Create(GetTokenName, 2, Line, Col, Filename);
- result := '';
- with aParams[1] do begin
- if not IsValidIdentifier(Name) then
- raise EengInvalidIdentifier.Create(Name, Line, Col, Filename);
- fName := Name;
- end;
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- class function TengShaderPartEcho.GetTokenName: String;
- begin
- result := TOKEN_ECHO;
- end;
-
- end.
|