📄 luaparsernode.pas
字号:
argOut : plua_pushstring(l, 'Out');
else
result := 0;
end;
end
else
result := 0;
end;
function GetArgType(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasArgument then
PushExistingNode(l, (target as TPasArgument).ArgType)
else
result := 0;
end;
function GetIsOfObject(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasProcedureType then
lua_pushboolean(l, (target as TPasProcedureType).IsOfObject)
else
result := 0;
end;
function GetResultType(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasResultElement then
PushExistingNode(l, (target as TPasResultElement).ResultType)
else
result := 0;
end;
function GetResultEl(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasFunctionType then
PushExistingNode(l, (target as TPasFunctionType).ResultEl)
else
result := 0;
end;
function GetRefType(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasTypeRef then
PushExistingNode(l, (target as TPasTypeRef).RefType)
else
result := 0;
end;
function GetVarType(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasVariable then
PushExistingNode(l, (target as TPasVariable).VarType)
else
result := 0;
end;
function GetModifiers(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasVariable then
plua_pushstring(l, (target as TPasVariable).Modifiers)
else
result := 0;
end;
function GetAbsoluteLocation(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : Integer;
begin
result := 1;
if target is TPasVariable then
plua_pushstring(l, (target as TPasVariable).AbsoluteLocation)
else
result := 0;
end;
function GetIndexValue(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
plua_pushstring(l, (target as TPasProperty).IndexValue)
else
result := 0;
end;
function GetReadAccessorName(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
plua_pushstring(l, (target as TPasProperty).ReadAccessorName)
else
result := 0;
end;
function GetWriteAccessorName(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
plua_pushstring(l, (target as TPasProperty).WriteAccessorName)
else
result := 0;
end;
function GetStoredAccessorName(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
plua_pushstring(l, (target as TPasProperty).StoredAccessorName)
else
result := 0;
end;
function GetDefaultValue(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
plua_pushstring(l, (target as TPasProperty).DefaultValue)
else
result := 0;
end;
function GetIsDefault(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
lua_pushboolean(l, (target as TPasProperty).IsDefault)
else
result := 0;
end;
function GetIsNodefault(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProperty then
lua_pushboolean(l, (target as TPasProperty).IsNodefault)
else
result := 0;
end;
function GetTypeName(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedureBase then
plua_pushstring(l, (target as TPasProcedureBase).TypeName)
else
result := 0;
end;
function GetProcType(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
PushExistingNode(l, (target as TPasProcedure).ProcType)
else
result := 0;
end;
function GetIsVirtual(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsVirtual)
else
result := 0;
end;
function GetIsDynamic(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsDynamic)
else
result := 0;
end;
function GetIsAbstract(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsAbstract)
else
result := 0;
end;
function GetIsOverride(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsOverride)
else
result := 0;
end;
function GetIsOverload(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsOverload)
else
result := 0;
end;
function GetIsMessage(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).IsMessage)
else
result := 0;
end;
function GetisReintroduced(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).isReintroduced)
else
result := 0;
end;
function GetisStatic(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
begin
result := 1;
if target is TPasProcedure then
lua_pushboolean(l, (target as TPasProcedure).isStatic)
else
result := 0;
end;
function GetVisibility(target : TObject; l : Plua_State; paramidxstart, paramcount : integer) : integer;
var
itm : TPasElement;
begin
result := 1;
itm := TPasElement(target);
plua_pushstring(l, VisibilityNames[itm.Visibility]);
end;
procedure InitClassInfo;
var
ci : PLuaClassInfo;
begin
ci := ClassTypesList.Add('TPasElement');
plua_AddClassProperty(ci^, 'Visibility', @GetVisibility, nil);
plua_AddClassProperty(ci^, 'SourceFilename', @GetFileName, nil);
plua_AddClassProperty(ci^, 'SourceLinenumber', @GetLineNumber, nil);
plua_AddClassProperty(ci^, 'FullName', @GetFullName, nil);
plua_AddClassProperty(ci^, 'PathName', @GetPathName, nil);
plua_AddClassProperty(ci^, 'ElementTypeName', @GetElementTypeName, nil);
plua_AddClassProperty(ci^, 'Name', @GetName, nil);
plua_AddClassProperty(ci^, 'Parent', @GetParent, nil);
plua_AddClassProperty(ci^, 'ClassName', @GetClassName, nil);
plua_AddClassProperty(ci^, 'DestType', @GetDestType, nil);
plua_AddClassProperty(ci^, 'PackageName', @GetPackageName, nil);
plua_AddClassProperty(ci^, 'Value', @GetValue, nil);
plua_AddClassProperty(ci^, 'RangeStart', @GetRangeStart, nil);
plua_AddClassProperty(ci^, 'RangeEnd', @GetRangeEnd, nil);
plua_AddClassProperty(ci^, 'IndexRange', @GetIndexRange, nil);
plua_AddClassProperty(ci^, 'IsPacked', @GetIsPacked, nil);
plua_AddClassProperty(ci^, 'ElType', @GetElType, nil);
plua_AddClassProperty(ci^, 'IsValueUsed', @GetIsValueUsed, nil);
plua_AddClassProperty(ci^, 'AssignedValue', @GetAssignedValue, nil);
plua_AddClassProperty(ci^, 'EnumType', @GetEnumType, nil);
plua_AddClassProperty(ci^, 'VariantName', @GetVariantName, nil);
plua_AddClassProperty(ci^, 'VariantType', @GetVariantType, nil);
plua_AddClassProperty(ci^, 'Members', @GetMembers, nil);
plua_AddClassProperty(ci^, 'ObjKind', @GetObjKind, nil);
plua_AddClassProperty(ci^, 'AncestorType', @GetAncestorType, nil);
plua_AddClassProperty(ci^, 'InterfaceGUID', @GetInterfaceGUID, nil);
plua_AddClassProperty(ci^, 'Access', @GetAccess, nil);
plua_AddClassProperty(ci^, 'ArgType', @GetArgType, nil);
plua_AddClassProperty(ci^, 'IsOfObject', @GetIsOfObject, nil);
plua_AddClassProperty(ci^, 'ResultType', @GetResultType, nil);
plua_AddClassProperty(ci^, 'ResultEl', @GetResultEl, nil);
plua_AddClassProperty(ci^, 'RefType', @GetRefType, nil);
plua_AddClassProperty(ci^, 'VarType', @GetVarType, nil);
plua_AddClassProperty(ci^, 'Modifiers', @GetModifiers, nil);
plua_AddClassProperty(ci^, 'AbsoluteLocation', @GetAbsoluteLocation, nil);
plua_AddClassProperty(ci^, 'IndexValue', @GetIndexValue, nil);
plua_AddClassProperty(ci^, 'ReadAccessorName', @GetReadAccessorName, nil);
plua_AddClassProperty(ci^, 'WriteAccessorName', @GetWriteAccessorName, nil);
plua_AddClassProperty(ci^, 'StoredAccessorName', @GetStoredAccessorName, nil);
plua_AddClassProperty(ci^, 'DefaultValue', @GetDefaultValue, nil);
plua_AddClassProperty(ci^, 'IsDefault', @GetIsDefault, nil);
plua_AddClassProperty(ci^, 'IsNodefault', @GetIsNodefault, nil);
plua_AddClassProperty(ci^, 'TypeName', @GetTypeName, nil);
plua_AddClassProperty(ci^, 'ProcType', @GetProcType, nil);
plua_AddClassProperty(ci^, 'IsVirtual', @GetIsVirtual, nil);
plua_AddClassProperty(ci^, 'IsDynamic', @GetIsDynamic, nil);
plua_AddClassProperty(ci^, 'IsAbstract', @GetIsAbstract, nil);
plua_AddClassProperty(ci^, 'IsOverride', @GetIsOverride, nil);
plua_AddClassProperty(ci^, 'IsOverload', @GetIsOverload, nil);
plua_AddClassProperty(ci^, 'IsMessage', @GetIsMessage, nil);
plua_AddClassProperty(ci^, 'isReintroduced', @GetisReintroduced, nil);
plua_AddClassProperty(ci^, 'isStatic', @GetisStatic, nil);
plua_AddClassMethod(ci^, 'GetDeclaration', @GetDeclaration);
plua_AddClassMethod(ci^, 'GetGetEnumNames', @GetGetEnumNames);
end;
procedure RegisterExistingNode(L: PLua_State; Name: AnsiString;
Node: TPasElement);
begin
plua_registerExisting(l, Name, Node, ClassTypesList['TPasElement']);
end;
procedure PushExistingNode(L: PLua_State; Node: TPasElement);
begin
plua_pushexisting(l, Node, ClassTypesList['TPasElement']);
end;
initialization
InitClassInfo;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -