📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, expr, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
function GetFuncValue(const FuncName, FuncParams: string): Double;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
yacc: TYacc;
Lex: TLex;
B: SmallInt;
begin
if Trim(Edit1.Text) = '' then Exit;
yacc := TYacc.Create;
Lex := TLex.Create;
yacc.ylex := Lex;
Lex.llib.yyinput := Edit1.Text + ';';
yacc.GetFuncValue := GetFuncValue;
if yacc.yyparse = 0 then
Memo1.Lines.Add(Lex.llib.yyoutput);
end;
function TForm1.GetFuncValue(const FuncName, FuncParams: string): Double;
begin
if (FuncName = 'TESTFUNC') then
Result := sqr(StrToFloat(FuncParams));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -