mirror of
https://github.com/moparisthebest/Simba
synced 2025-02-12 05:10:28 -05:00
Added core functions to code completion.
This commit is contained in:
parent
b9414c8139
commit
90e1e538a6
File diff suppressed because it is too large
Load Diff
@ -1,322 +0,0 @@
|
|||||||
{---------------------------------------------------------------------------
|
|
||||||
The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
1.1 (the "License"); you may not use this file except in compliance with the
|
|
||||||
License. You may obtain a copy of the License at
|
|
||||||
http://www.mozilla.org/NPL/NPL-1_1Final.html
|
|
||||||
|
|
||||||
Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
||||||
the specific language governing rights and limitations under the License.
|
|
||||||
|
|
||||||
The Original Code is: mwPasLexTypes, released November 14, 1999.
|
|
||||||
|
|
||||||
The Initial Developer of the Original Code is Martin Waldenburg
|
|
||||||
unit CastaliaPasLexTypes;
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------}
|
|
||||||
|
|
||||||
unit CastaliaPasLexTypes;
|
|
||||||
|
|
||||||
{$include ValistusDefines.inc}
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses SysUtils, TypInfo;
|
|
||||||
|
|
||||||
var
|
|
||||||
CompTable: array[#0..#255] of byte;
|
|
||||||
|
|
||||||
type
|
|
||||||
|
|
||||||
TMessageEventType = ( meError, meNotSupported );
|
|
||||||
|
|
||||||
TMessageEvent = procedure(Sender: TObject; const Typ : TMessageEventType; const Msg: string; X, Y: Integer ) of object; //jdj 7/16/1999; DR 2001-11-06
|
|
||||||
|
|
||||||
TCommentState = (csAnsi, csBor, csNo);
|
|
||||||
|
|
||||||
TTokenPoint = packed record
|
|
||||||
X : Integer;
|
|
||||||
Y : Integer;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TptTokenKind = (
|
|
||||||
tokAbort, //JThurman 2004-11-8 (flow control routines)
|
|
||||||
tokAbsolute,
|
|
||||||
tokAbstract,
|
|
||||||
tokAdd,
|
|
||||||
tokAddressOp,
|
|
||||||
tokAmpersand,
|
|
||||||
tokAnd,
|
|
||||||
tokAnsiComment,
|
|
||||||
tokAnsiString,
|
|
||||||
tokArray,
|
|
||||||
tokAs,
|
|
||||||
tokAsciiChar,
|
|
||||||
tokAsm,
|
|
||||||
tokAssembler,
|
|
||||||
tokAssign,
|
|
||||||
tokAt,
|
|
||||||
tokAutomated,
|
|
||||||
tokBegin,
|
|
||||||
tokBoolean,
|
|
||||||
tokBorComment,
|
|
||||||
tokBraceClose,
|
|
||||||
tokBraceOpen,
|
|
||||||
tokBreak, //JThurman 2004-11-8 (flow control routines)
|
|
||||||
tokByte,
|
|
||||||
tokByteBool,
|
|
||||||
tokCardinal,
|
|
||||||
tokCase,
|
|
||||||
tokCdecl,
|
|
||||||
tokChar,
|
|
||||||
tokClass,
|
|
||||||
tokClassForward,
|
|
||||||
tokClassFunction,
|
|
||||||
tokClassProcedure,
|
|
||||||
tokColon,
|
|
||||||
tokComma,
|
|
||||||
tokComp,
|
|
||||||
tokCompDirect,
|
|
||||||
tokConst,
|
|
||||||
tokConstructor,
|
|
||||||
tokContains,
|
|
||||||
tokContinue, //JThurman 2004-11-8 (flow control routines)
|
|
||||||
tokCRLF,
|
|
||||||
tokCRLFCo,
|
|
||||||
tokCurrency,
|
|
||||||
tokDefault,
|
|
||||||
tokDefineDirect,
|
|
||||||
tokDeprecated, // DR 2001-10-20
|
|
||||||
tokDestructor,
|
|
||||||
tokDispid,
|
|
||||||
tokDispinterface,
|
|
||||||
tokDiv,
|
|
||||||
tokDo,
|
|
||||||
tokDotDot,
|
|
||||||
tokDouble,
|
|
||||||
tokDoubleAddressOp,
|
|
||||||
tokDownto,
|
|
||||||
tokDWORD,
|
|
||||||
tokDynamic,
|
|
||||||
tokElse,
|
|
||||||
tokElseDirect,
|
|
||||||
tokEnd,
|
|
||||||
tokEndIfDirect,
|
|
||||||
tokEqual,
|
|
||||||
tokError,
|
|
||||||
tokExcept,
|
|
||||||
tokExit, //JThurman 2004-11-8 (flow control routine)
|
|
||||||
tokExport,
|
|
||||||
tokExports,
|
|
||||||
tokExtended,
|
|
||||||
tokExternal,
|
|
||||||
tokFar,
|
|
||||||
tokFile,
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-03-20
|
|
||||||
tokFinal,
|
|
||||||
{$ENDIF}
|
|
||||||
tokFinalization,
|
|
||||||
tokFinally,
|
|
||||||
tokFloat,
|
|
||||||
tokFor,
|
|
||||||
tokForward,
|
|
||||||
tokFunction,
|
|
||||||
tokGoto,
|
|
||||||
tokGreater,
|
|
||||||
tokGreaterEqual,
|
|
||||||
tokHalt, //JThurman 2004-11-8 (flow control routines)
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-04-06
|
|
||||||
tokHelper,
|
|
||||||
{$ENDIF}
|
|
||||||
tokIdentifier,
|
|
||||||
tokIf,
|
|
||||||
tokIfDirect,
|
|
||||||
tokIfEndDirect,
|
|
||||||
tokElseIfDirect,
|
|
||||||
tokIfDefDirect,
|
|
||||||
tokIfNDefDirect,
|
|
||||||
tokIfOptDirect,
|
|
||||||
tokImplementation,
|
|
||||||
tokImplements,
|
|
||||||
tokIn,
|
|
||||||
tokIncludeDirect,
|
|
||||||
tokIndex,
|
|
||||||
tokInherited,
|
|
||||||
tokInitialization,
|
|
||||||
tokInline,
|
|
||||||
tokInt64,
|
|
||||||
tokInteger,
|
|
||||||
tokIntegerConst,
|
|
||||||
tokInterface,
|
|
||||||
tokIs,
|
|
||||||
tokLabel,
|
|
||||||
tokLibrary,
|
|
||||||
tokLocal, // DR 2001-11-14
|
|
||||||
tokLongBool,
|
|
||||||
tokLongint,
|
|
||||||
tokLongword,
|
|
||||||
tokLower,
|
|
||||||
tokLowerEqual,
|
|
||||||
tokMessage,
|
|
||||||
tokMinus,
|
|
||||||
tokMod,
|
|
||||||
tokName,
|
|
||||||
tokNear,
|
|
||||||
tokNil,
|
|
||||||
tokNodefault,
|
|
||||||
tokNone,
|
|
||||||
tokNot,
|
|
||||||
tokNotEqual,
|
|
||||||
tokNull,
|
|
||||||
tokObject,
|
|
||||||
tokOf,
|
|
||||||
tokOleVariant,
|
|
||||||
tokOn,
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-03-20
|
|
||||||
tokOperator,
|
|
||||||
{$ENDIF}
|
|
||||||
tokOr,
|
|
||||||
tokOut,
|
|
||||||
tokOverload,
|
|
||||||
tokOverride,
|
|
||||||
tokPackage,
|
|
||||||
tokPacked,
|
|
||||||
tokPascal,
|
|
||||||
tokPChar,
|
|
||||||
tokPlatform, // DR 2001-10-20
|
|
||||||
tokPlus,
|
|
||||||
tokPoint,
|
|
||||||
tokPointerSymbol,
|
|
||||||
tokPrivate,
|
|
||||||
tokProcedure,
|
|
||||||
tokProgram,
|
|
||||||
tokProperty,
|
|
||||||
tokProtected,
|
|
||||||
tokPublic,
|
|
||||||
tokPublished,
|
|
||||||
tokRaise,
|
|
||||||
tokRead,
|
|
||||||
tokReadonly,
|
|
||||||
tokReal,
|
|
||||||
tokReal48,
|
|
||||||
tokRecord,
|
|
||||||
{$IFDEF D12_NEWER}
|
|
||||||
tokReference, //JThurman 2008-25-07 (anonymous methods)
|
|
||||||
{$ENDIF}
|
|
||||||
tokRegister,
|
|
||||||
tokReintroduce,
|
|
||||||
tokRemove,
|
|
||||||
tokRepeat,
|
|
||||||
tokRequires,
|
|
||||||
tokResident,
|
|
||||||
tokResourceDirect,
|
|
||||||
tokResourcestring,
|
|
||||||
tokRoundClose,
|
|
||||||
tokRoundOpen,
|
|
||||||
tokRunError, //JThurman 2004-11-8 (flow control routines)
|
|
||||||
tokSafeCall,
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-03-19
|
|
||||||
tokSealed,
|
|
||||||
{$ENDIF}
|
|
||||||
tokSemiColon,
|
|
||||||
tokSet,
|
|
||||||
tokShl,
|
|
||||||
tokShortint,
|
|
||||||
tokShortString,
|
|
||||||
tokShr,
|
|
||||||
tokSingle,
|
|
||||||
tokSlash,
|
|
||||||
tokSlashesComment,
|
|
||||||
tokSmallint,
|
|
||||||
tokSpace,
|
|
||||||
tokSquareClose,
|
|
||||||
tokSquareOpen,
|
|
||||||
tokStar,
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-03-20
|
|
||||||
tokStatic,
|
|
||||||
{$ENDIF}
|
|
||||||
tokStdcall,
|
|
||||||
tokStored,
|
|
||||||
{$IFDEF D8_NEWER}
|
|
||||||
tokStrict, //JThurman 2004-03-03
|
|
||||||
{$ENDIF}
|
|
||||||
tokString,
|
|
||||||
tokStringConst,
|
|
||||||
tokStringDQConst, // 2002-01-14
|
|
||||||
tokStringresource,
|
|
||||||
tokSymbol,
|
|
||||||
tokThen,
|
|
||||||
tokThreadvar,
|
|
||||||
tokTo,
|
|
||||||
tokTry,
|
|
||||||
tokType,
|
|
||||||
tokUndefDirect,
|
|
||||||
tokUnit,
|
|
||||||
tokUnknown,
|
|
||||||
{$IFDEF D8_NEWER} //JThurman 2004-03-2003
|
|
||||||
tokUnsafe,
|
|
||||||
{$ENDIF}
|
|
||||||
tokUntil,
|
|
||||||
tokUses,
|
|
||||||
tokVar,
|
|
||||||
tokVarargs, // DR 2001-11-14
|
|
||||||
tokVariant,
|
|
||||||
tokVirtual,
|
|
||||||
tokWhile,
|
|
||||||
tokWideChar,
|
|
||||||
tokWideString,
|
|
||||||
tokWith,
|
|
||||||
tokWord,
|
|
||||||
tokWordBool,
|
|
||||||
tokWrite,
|
|
||||||
tokWriteonly,
|
|
||||||
tokXor,
|
|
||||||
|
|
||||||
tok_DONE);
|
|
||||||
|
|
||||||
TmwPasLexStatus = record
|
|
||||||
CommentState: TCommentState;
|
|
||||||
ExID: TptTokenKind;
|
|
||||||
LineNumber: Integer;
|
|
||||||
LinePos: Integer;
|
|
||||||
Origin: PAnsiChar;
|
|
||||||
RunPos: Integer;
|
|
||||||
TokenPos: Integer;
|
|
||||||
TokenID: TptTokenKind;
|
|
||||||
end;
|
|
||||||
|
|
||||||
const ExTypes = [tokDWORD, tokUnknown];
|
|
||||||
|
|
||||||
function TokenName(Value: TptTokenKind): string;
|
|
||||||
function tokTokenName(Value: TptTokenKind): string;
|
|
||||||
function IsTokenIDJunk(const aTokenID : TptTokenKind ) :Boolean; //XM 20001210
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
function TokenName(Value: TptTokenKind): string;
|
|
||||||
begin //jdj 7/18/1999
|
|
||||||
Result := Copy(tokTokenName(Value), 4, MaxInt);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function tokTokenName(Value: TptTokenKind): string;
|
|
||||||
begin
|
|
||||||
result := GetEnumName(TypeInfo(TptTokenKind), Integer(Value));
|
|
||||||
end;
|
|
||||||
|
|
||||||
function IsTokenIDJunk(const aTokenID : TptTokenKind ) :boolean; //XM 20001210
|
|
||||||
begin
|
|
||||||
Result := aTokenID in [tokAnsiComment, tokBorComment, tokCRLF, tokCRLFCo, tokSlashesComment, tokSpace,
|
|
||||||
tokIfDirect,
|
|
||||||
tokIfEndDirect,
|
|
||||||
tokElseIfDirect,
|
|
||||||
tokIfDefDirect,
|
|
||||||
tokIfNDefDirect,
|
|
||||||
tokEndIfDirect,
|
|
||||||
tokIfOptDirect,
|
|
||||||
tokDefineDirect,
|
|
||||||
tokUndefDirect];
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,330 +0,0 @@
|
|||||||
{---------------------------------------------------------------------------
|
|
||||||
The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
1.1 (the "License"); you may not use this file except in compliance with the
|
|
||||||
License. You may obtain a copy of the License at
|
|
||||||
http://www.mozilla.org/NPL/NPL-1_1Final.html
|
|
||||||
|
|
||||||
Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
||||||
the specific language governing rights and limitations under the License.
|
|
||||||
|
|
||||||
The Original Code is: mwSimplePasParTypes, released November 14, 1999.
|
|
||||||
|
|
||||||
The Initial Developer of the Original Code is Martin Waldenburg
|
|
||||||
unit CastaliaPasLexTypes;
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------}
|
|
||||||
|
|
||||||
unit CastaliaSimplePasParTypes;
|
|
||||||
|
|
||||||
{$include ValistusDefines.inc}
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses SysUtils, TypInfo;
|
|
||||||
|
|
||||||
type
|
|
||||||
TmwParseError = (
|
|
||||||
InvalidAdditiveOperator,
|
|
||||||
InvalidAccessSpecifier,
|
|
||||||
InvalidCharString,
|
|
||||||
InvalidClassMethodHeading,
|
|
||||||
InvalidConstantDeclaration,
|
|
||||||
InvalidConstSection,
|
|
||||||
InvalidDeclarationSection,
|
|
||||||
InvalidDirective16Bit,
|
|
||||||
InvalidDirectiveBinding,
|
|
||||||
InvalidDirectiveCalling,
|
|
||||||
InvalidExportedHeading,
|
|
||||||
InvalidForStatement,
|
|
||||||
InvalidInitializationSection,
|
|
||||||
InvalidInterfaceDeclaration,
|
|
||||||
InvalidInterfaceType,
|
|
||||||
InvalidLabelId,
|
|
||||||
InvalidLabeledStatement,
|
|
||||||
InvalidMethodHeading,
|
|
||||||
InvalidMultiplicativeOperator,
|
|
||||||
InvalidNumber,
|
|
||||||
InvalidOrdinalIdentifier,
|
|
||||||
InvalidParameter,
|
|
||||||
InvalidParseFile,
|
|
||||||
InvalidProceduralDirective,
|
|
||||||
InvalidProceduralType,
|
|
||||||
InvalidProcedureDeclarationSection,
|
|
||||||
InvalidProcedureMethodDeclaration,
|
|
||||||
InvalidRealIdentifier,
|
|
||||||
InvalidRelativeOperator,
|
|
||||||
InvalidStorageSpecifier,
|
|
||||||
InvalidStringIdentifier,
|
|
||||||
InvalidStructuredType,
|
|
||||||
InvalidTryStatement,
|
|
||||||
InvalidTypeKind,
|
|
||||||
InvalidVariantIdentifier,
|
|
||||||
InvalidVarSection,
|
|
||||||
vchInvalidClass, //vch
|
|
||||||
vchInvalidMethod, //vch
|
|
||||||
vchInvalidProcedure,//vch
|
|
||||||
vchInvalidCircuit, //vch
|
|
||||||
vchInvalidIncludeFile //vch
|
|
||||||
);
|
|
||||||
|
|
||||||
TmwPasCodeInfo = (
|
|
||||||
ciNone, //: @BUG heresy !
|
|
||||||
ciAccessSpecifier,
|
|
||||||
ciAdditiveOperator,
|
|
||||||
ciArrayConstant,
|
|
||||||
ciArrayType,
|
|
||||||
ciAsmStatement,
|
|
||||||
ciBlock,
|
|
||||||
ciCaseLabel,
|
|
||||||
ciCaseSelector,
|
|
||||||
ciCaseStatement,
|
|
||||||
ciCharString,
|
|
||||||
ciClassClass, //DR 2001-07-16
|
|
||||||
ciClassField,
|
|
||||||
ciClassForward,
|
|
||||||
ciClassFunctionHeading,
|
|
||||||
ciClassHeritage,
|
|
||||||
ciClassMemberList,
|
|
||||||
ciClassMethodDirective,
|
|
||||||
ciClassMethodHeading,
|
|
||||||
ciClassMethodOrProperty,
|
|
||||||
ciClassMethodResolution,
|
|
||||||
ciClassProcedureHeading,
|
|
||||||
ciClassProperty,
|
|
||||||
ciClassReferenceType,
|
|
||||||
ciClassType,
|
|
||||||
ciClassTypeEnd, // DR 2001-07-31
|
|
||||||
ciClassVisibility,
|
|
||||||
ciCompoundStatement,
|
|
||||||
ciConstantColon,
|
|
||||||
ciConstantDeclaration,
|
|
||||||
ciConstantEqual,
|
|
||||||
ciConstantExpression,
|
|
||||||
ciConstantName,
|
|
||||||
ciConstantValue,
|
|
||||||
ciConstantValueTyped,
|
|
||||||
ciConstParameter,
|
|
||||||
ciConstructorHeading,
|
|
||||||
ciConstructorName,
|
|
||||||
ciConstSection,
|
|
||||||
ciContainsClause,
|
|
||||||
ciContainsExpression,
|
|
||||||
ciContainsIdentifier,
|
|
||||||
ciContainsStatement,
|
|
||||||
ciDeclarationSection,
|
|
||||||
ciDesignator,
|
|
||||||
ciDestructorHeading,
|
|
||||||
ciDestructorName,
|
|
||||||
ciDirective16Bit,
|
|
||||||
ciDirectiveBinding,
|
|
||||||
ciDirectiveCalling,
|
|
||||||
ciDirectiveDeprecated, // DR 2001-10-20
|
|
||||||
ciDirectiveLibrary, // DR 2001-10-20
|
|
||||||
ciDirectiveLocal, // DR 2001-11-14
|
|
||||||
ciDirectivePlatform, // DR 2001-10-20
|
|
||||||
ciDirectiveVarargs, // DR 2001-11-14
|
|
||||||
ciDispIDSpecifier, // DR 2001-07-26
|
|
||||||
ciDispInterfaceForward,
|
|
||||||
ciEmptyStatement,
|
|
||||||
ciEnumeratedType,
|
|
||||||
ciEnumeratedTypeItem, // DR 2001-10-29
|
|
||||||
ciExceptBlock,
|
|
||||||
ciExceptionBlockElseBranch,
|
|
||||||
ciExceptionClassTypeIdentifier,
|
|
||||||
ciExceptionHandler,
|
|
||||||
ciExceptionHandlerList,
|
|
||||||
ciExceptionIdentifier,
|
|
||||||
ciExceptionVariable,
|
|
||||||
ciExpliciteType,
|
|
||||||
ciExportedHeading,
|
|
||||||
ciExportsClause,
|
|
||||||
ciExportsElement,
|
|
||||||
ciExpression,
|
|
||||||
ciExpressionList,
|
|
||||||
ciExternalDirective,
|
|
||||||
ciExternalDirectiveThree,
|
|
||||||
ciExternalDirectiveTwo,
|
|
||||||
ciFactor,
|
|
||||||
ciFieldDeclaration,
|
|
||||||
ciFieldList,
|
|
||||||
ciFileType,
|
|
||||||
ciFormalParameterList,
|
|
||||||
ciFormalParameterSection,
|
|
||||||
ciForStatement,
|
|
||||||
ciForwardDeclaration, // DR 2001-07-23
|
|
||||||
ciFunctionHeading,
|
|
||||||
ciFunctionMethodDeclaration,
|
|
||||||
ciFunctionMethodName,
|
|
||||||
ciFunctionProcedureBlock,
|
|
||||||
ciFunctionProcedureName,
|
|
||||||
ciHandlePtCompDirect, //XM 20001125
|
|
||||||
ciHandlePtDefineDirect, //XM 20001125
|
|
||||||
ciHandlePtElseDirect, //XM 20001125
|
|
||||||
ciHandlePtIfDefDirect, //XM 20001125
|
|
||||||
ciHandlePtEndIfDirect, //XM 20001125
|
|
||||||
ciHandlePtIfNDefDirect, //XM 20001125
|
|
||||||
ciHandlePtIfOptDirect, //XM 20001125
|
|
||||||
ciHandlePtIncludeDirect,//XM 20001125
|
|
||||||
ciHandlePtResourceDirect,//XM 20001125
|
|
||||||
ciHandlePtUndefDirect, //XM 20001125
|
|
||||||
ciIdentifier,
|
|
||||||
ciIdentifierList,
|
|
||||||
ciIfStatement,
|
|
||||||
ciImplementationSection,
|
|
||||||
ciIncludeFile,
|
|
||||||
ciIndexSpecifier, // DR 2001-07-26
|
|
||||||
ciInheritedStatement,
|
|
||||||
ciInitializationSection,
|
|
||||||
ciInlineStatement,
|
|
||||||
ciInterfaceDeclaration,
|
|
||||||
ciInterfaceForward,
|
|
||||||
ciInterfaceGUID,
|
|
||||||
ciInterfaceHeritage,
|
|
||||||
ciInterfaceMemberList,
|
|
||||||
ciInterfaceSection,
|
|
||||||
ciInterfaceType,
|
|
||||||
ciLabelDeclarationSection,
|
|
||||||
ciLabeledStatement,
|
|
||||||
ciLabelId,
|
|
||||||
ciLibraryFile,
|
|
||||||
ciMainUsedUnitExpression,
|
|
||||||
ciMainUsedUnitName,
|
|
||||||
ciMainUsedUnitStatement,
|
|
||||||
ciMainUsesClause,
|
|
||||||
ciMultiplicativeOperator,
|
|
||||||
ciNewFormalParameterType,
|
|
||||||
ciNumber,
|
|
||||||
ciNextToken, //XM 20002512
|
|
||||||
ciObjectConstructorHeading,
|
|
||||||
ciObjectDestructorHeading,
|
|
||||||
ciObjectField,
|
|
||||||
ciObjectForward,
|
|
||||||
ciObjectFunctionHeading,
|
|
||||||
ciObjectHeritage,
|
|
||||||
ciObjectMemberList,
|
|
||||||
ciObjectMethodDirective,
|
|
||||||
ciObjectMethodHeading,
|
|
||||||
ciObjectNameOfMethod,
|
|
||||||
ciObjectProcedureHeading,
|
|
||||||
ciObjectProperty, // DR 2001-08-07
|
|
||||||
ciObjectPropertySpecifiers, // DR 2001-08-07
|
|
||||||
ciObjectType,
|
|
||||||
ciObjectTypeEnd, // DR 2001-08-07
|
|
||||||
ciObjectVisibility,
|
|
||||||
ciOldFormalParameterType,
|
|
||||||
ciOrdinalIdentifier,
|
|
||||||
ciOrdinalType,
|
|
||||||
ciOutParameter,
|
|
||||||
ciPackageFile,
|
|
||||||
ciParameterFormal,
|
|
||||||
ciParameterName,
|
|
||||||
ciParameterNameList,
|
|
||||||
ciParseFile,
|
|
||||||
ciPointerType,
|
|
||||||
ciProceduralDirective,
|
|
||||||
ciProceduralType,
|
|
||||||
ciProcedureDeclarationSection,
|
|
||||||
ciProcedureHeading,
|
|
||||||
ciProcedureMethodDeclaration,
|
|
||||||
ciProcedureMethodName,
|
|
||||||
ciProgramBlock,
|
|
||||||
ciProgramFile,
|
|
||||||
ciPropertyDefault, // DR 2001-07-16
|
|
||||||
ciPropertyInterface,
|
|
||||||
ciPropertyName,
|
|
||||||
ciPropertyParameterConst,
|
|
||||||
ciPropertyParameterList,
|
|
||||||
ciPropertySpecifiers,
|
|
||||||
ciQualifiedIdentifier,
|
|
||||||
ciQualifiedIdentifierList,
|
|
||||||
ciRaiseStatement,
|
|
||||||
ciReadAccessIdentifier,
|
|
||||||
ciRealIdentifier,
|
|
||||||
ciRealType,
|
|
||||||
ciRecordConstant,
|
|
||||||
ciRecordFieldConstant,
|
|
||||||
ciRecordType,
|
|
||||||
ciRecordVariant,
|
|
||||||
ciRelativeOperator,
|
|
||||||
ciRepeatStatement,
|
|
||||||
ciRequiresClause,
|
|
||||||
ciRequiresIdentifier,
|
|
||||||
ciResolutionInterfaceName,
|
|
||||||
ciResourceDeclaration,
|
|
||||||
ciReturnType,
|
|
||||||
ciSEMICOLON, //XM 20002512
|
|
||||||
ciSetConstructor,
|
|
||||||
ciSetElement,
|
|
||||||
ciSetType,
|
|
||||||
ciSimpleExpression,
|
|
||||||
ciSimpleStatement,
|
|
||||||
ciSimpleType,
|
|
||||||
ciSkipAnsiComment,
|
|
||||||
ciSkipBorComment,
|
|
||||||
ciSkipSlashesComment,
|
|
||||||
ciSkipSpace, //XM 20002511
|
|
||||||
ciSkipCRLFco, //XM 20002511
|
|
||||||
ciSkipCRLF, //XM 20002511
|
|
||||||
ciStatement,
|
|
||||||
ciStatementList,
|
|
||||||
ciStorageExpression,
|
|
||||||
ciStorageIdentifier,
|
|
||||||
ciStorageDefault,
|
|
||||||
ciStorageNoDefault,
|
|
||||||
ciStorageSpecifier,
|
|
||||||
ciStorageStored,
|
|
||||||
ciStringIdentifier,
|
|
||||||
ciStringStatement,
|
|
||||||
ciStringType,
|
|
||||||
ciStructuredType,
|
|
||||||
ciSubrangeType,
|
|
||||||
ciTagField,
|
|
||||||
ciTagFieldName,
|
|
||||||
ciTagFieldTypeName,
|
|
||||||
ciTerm,
|
|
||||||
ciTryStatement,
|
|
||||||
ciTypedConstant,
|
|
||||||
ciTypeDeclaration,
|
|
||||||
ciTypeId,
|
|
||||||
ciTypeKind,
|
|
||||||
ciTypeName,
|
|
||||||
ciTypeSection,
|
|
||||||
ciUnitFile,
|
|
||||||
ciUnitId,
|
|
||||||
ciUsedUnitName,
|
|
||||||
ciUsedUnitsList,
|
|
||||||
ciUsesClause,
|
|
||||||
ciVarAbsolute,
|
|
||||||
ciVarEqual,
|
|
||||||
ciVarDeclaration,
|
|
||||||
ciVariable,
|
|
||||||
ciVariableList,
|
|
||||||
ciVariableReference,
|
|
||||||
ciVariableTwo,
|
|
||||||
ciVariantIdentifier,
|
|
||||||
ciVariantSection,
|
|
||||||
ciVarParameter,
|
|
||||||
ciVarSection,
|
|
||||||
ciVisibilityAutomated,
|
|
||||||
ciVisibilityPrivate,
|
|
||||||
ciVisibilityProtected,
|
|
||||||
ciVisibilityPublic,
|
|
||||||
ciVisibilityPublished,
|
|
||||||
ciVisibilityUnknown,
|
|
||||||
ciWhileStatement,
|
|
||||||
ciWithStatement,
|
|
||||||
ciWriteAccessIdentifier
|
|
||||||
);
|
|
||||||
|
|
||||||
function ParserErrorName(Value: TmwParseError): string;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
function ParserErrorName(Value: TmwParseError): string;
|
|
||||||
begin
|
|
||||||
result := GetEnumName(TypeInfo(TmwParseError), Integer(Value));
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
||||||
|
|
@ -42,7 +42,8 @@ uses
|
|||||||
SynEditMarkupHighAll, LMessages, Buttons,
|
SynEditMarkupHighAll, LMessages, Buttons,
|
||||||
stringutil,mufasatypesutil,mufasabase,
|
stringutil,mufasatypesutil,mufasabase,
|
||||||
about, framefunctionlist, ocr, updateform, simbasettings, psextension, virtualextension,
|
about, framefunctionlist, ocr, updateform, simbasettings, psextension, virtualextension,
|
||||||
extensionmanager, settingssandbox, v_ideCodeInsight, v_ideCodeParser, CastaliaPasLexTypes, CastaliaSimplePasPar, v_AutoCompleteForm, PSDump;
|
extensionmanager, settingssandbox, v_ideCodeInsight, v_ideCodeParser, CastaliaPasLexTypes,
|
||||||
|
CastaliaSimplePasPar, v_AutoCompleteForm, PSDump, uPSComponent;
|
||||||
|
|
||||||
const
|
const
|
||||||
SimbaVersion = 587;
|
SimbaVersion = 587;
|
||||||
@ -1733,6 +1734,48 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.FormCreate(Sender: TObject);
|
procedure TForm1.FormCreate(Sender: TObject);
|
||||||
|
|
||||||
|
procedure CCFillCore;
|
||||||
|
var
|
||||||
|
t: TMThread;
|
||||||
|
a: TPSScriptExtension;
|
||||||
|
b: TStringList;
|
||||||
|
ms: TMemoryStream;
|
||||||
|
begin
|
||||||
|
InitalizeTMThread(t);
|
||||||
|
if (not (t is TPSThread)) then
|
||||||
|
Exit;
|
||||||
|
a := TPSScriptExtension.Create(Self);
|
||||||
|
b := TStringList.Create;
|
||||||
|
ms := TMemoryStream.Create;
|
||||||
|
|
||||||
|
try
|
||||||
|
|
||||||
|
with TPSThread(t).PSScript do
|
||||||
|
begin
|
||||||
|
a.OnCompile := OnCompile;
|
||||||
|
a.OnCompImport := OnCompImport;
|
||||||
|
a.OnExecImport := OnExecImport;
|
||||||
|
end;
|
||||||
|
|
||||||
|
a.GetValueDefs(b);
|
||||||
|
|
||||||
|
SetLength(CoreBuffer, 1);
|
||||||
|
CoreBuffer[0] := TCodeInsight.Create;
|
||||||
|
with CoreBuffer[0] do
|
||||||
|
begin
|
||||||
|
OnMessage := @OnCCMessage;
|
||||||
|
b.SaveToStream(ms);
|
||||||
|
Run(ms);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
ms.Free;
|
||||||
|
b.Free;
|
||||||
|
a.Free;
|
||||||
|
t.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Randomize;
|
Randomize;
|
||||||
DecimalSeparator := '.';
|
DecimalSeparator := '.';
|
||||||
@ -1793,6 +1836,8 @@ begin
|
|||||||
FirstRun := true;//Our next run is the first run.
|
FirstRun := true;//Our next run is the first run.
|
||||||
HandleParameters;
|
HandleParameters;
|
||||||
TT_Update.Visible:= false;
|
TT_Update.Visible:= false;
|
||||||
|
|
||||||
|
CCFillCore;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.FormDestroy(Sender: TObject);
|
procedure TForm1.FormDestroy(Sender: TObject);
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
A component wrapper for IFPS3, including debugging support.
|
A component wrapper for IFPS3, including debugging support.
|
||||||
|
|
||||||
}
|
}
|
||||||
//{$I PascalScript.inc}
|
|
||||||
|
{$IFDEF FPC}
|
||||||
|
{$H+}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
unit PSDump;
|
unit PSDump;
|
||||||
|
|
||||||
@ -53,7 +56,7 @@ end;
|
|||||||
|
|
||||||
procedure CEException(Sender: TPSExec; ExError: TIFError; const ExParam: tbtstring; ExObject: TObject; ProcNo, Position: Cardinal);
|
procedure CEException(Sender: TPSExec; ExError: TIFError; const ExParam: tbtstring; ExObject: TObject; ProcNo, Position: Cardinal);
|
||||||
begin
|
begin
|
||||||
if (@TPSScriptExtension(Sender.ID).FOnException <> nil) then
|
if (TPSScriptExtension(Sender.ID).FOnException <> nil) then
|
||||||
TPSScriptExtension(Sender.ID).FOnException(Sender, ExError, ExParam, ExObject, ProcNo, Position);
|
TPSScriptExtension(Sender.ID).FOnException(Sender, ExError, ExParam, ExObject, ProcNo, Position);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -126,7 +129,7 @@ procedure TPSScriptExtension.GetCodeProps;
|
|||||||
ci: TPSDelphiClassItem;
|
ci: TPSDelphiClassItem;
|
||||||
i, ii: Integer;
|
i, ii: Integer;
|
||||||
s: string;
|
s: string;
|
||||||
Def: Cardinal;
|
Def: PtrUInt;
|
||||||
ListFree: Boolean;
|
ListFree: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := '';
|
Result := '';
|
||||||
@ -164,6 +167,7 @@ procedure TPSScriptExtension.GetCodeProps;
|
|||||||
s := s + 'Index';
|
s := s + 'Index';
|
||||||
if (ii > 0) then
|
if (ii > 0) then
|
||||||
s := s + IntToStr(ii + 1);
|
s := s + IntToStr(ii + 1);
|
||||||
|
if (ii = ci.Decl.ParamCount - 1) then
|
||||||
s := s + ': ' + TypeToString(ci.Decl.Params[ii].aType);
|
s := s + ': ' + TypeToString(ci.Decl.Params[ii].aType);
|
||||||
end;
|
end;
|
||||||
if (s <> '') then
|
if (s <> '') then
|
||||||
@ -317,7 +321,7 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
if (fItems <> nil) then
|
if (fItems <> nil) then
|
||||||
GetCodeProps;
|
GetCodeProps;
|
||||||
if (@FOnBeforeCleanUp <> nil) then
|
if (FOnBeforeCleanUp <> nil) then
|
||||||
Result := FOnBeforeCleanUp(Sender, aComp);
|
Result := FOnBeforeCleanUp(Sender, aComp);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -330,7 +334,7 @@ end;
|
|||||||
procedure TPSScriptExtension.DoScriptChange(sender: TObject);
|
procedure TPSScriptExtension.DoScriptChange(sender: TObject);
|
||||||
begin
|
begin
|
||||||
FNeedCompiling := True;
|
FNeedCompiling := True;
|
||||||
if (@FOnScriptChange <> nil) then
|
if (FOnScriptChange <> nil) then
|
||||||
FOnScriptChange(sender);
|
FOnScriptChange(sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -664,30 +664,23 @@ function TCodeInsight.FindVarBase(s: string; GetStruct: Boolean = False; Return:
|
|||||||
|
|
||||||
function DoGetVarType(s: string; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
function DoGetVarType(s: string; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
||||||
|
|
||||||
function CheckIt(s: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
function CheckIt(s: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase; const CheckCore: Boolean = True): Boolean;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if Item.GetVarType(s, Decl, Return) then
|
if Item.GetVarType(s, Decl, Return) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
for i := High(Item.Includes) downto Low(Item.Includes) do
|
for i := High(Item.Includes) downto Low(Item.Includes) do
|
||||||
if CheckIt(s, Item.Includes[i], Decl, Return) then
|
if CheckIt(s, Item.Includes[i], Decl, Return) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
if (not CheckCore) then
|
||||||
|
Exit;
|
||||||
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
||||||
if CheckIt(s, CoreBuffer[i], Decl, Return) then
|
if CheckIt(s, CoreBuffer[i], Decl, Return, False) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -696,30 +689,23 @@ function TCodeInsight.FindVarBase(s: string; GetStruct: Boolean = False; Return:
|
|||||||
|
|
||||||
function DoGetFuncType(FuncName, FuncClass: string; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
function DoGetFuncType(FuncName, FuncClass: string; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
||||||
|
|
||||||
function CheckIt(FuncName, FuncClass: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase): Boolean;
|
function CheckIt(FuncName, FuncClass: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase; const CheckCore: Boolean = True): Boolean;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if Item.GetFuncType(FuncName, FuncClass, Decl, Return) then
|
if Item.GetFuncType(FuncName, FuncClass, Decl, Return) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
for i := High(Item.Includes) downto Low(Item.Includes) do
|
for i := High(Item.Includes) downto Low(Item.Includes) do
|
||||||
if CheckIt(FuncName, FuncClass, Item.Includes[i], Decl, Return) then
|
if CheckIt(FuncName, FuncClass, Item.Includes[i], Decl, Return) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
if (not CheckCore) then
|
||||||
|
Exit;
|
||||||
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
||||||
if CheckIt(FuncName, FuncClass, CoreBuffer[i], Decl, Return) then
|
if CheckIt(FuncName, FuncClass, CoreBuffer[i], Decl, Return, False) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -728,30 +714,23 @@ function TCodeInsight.FindVarBase(s: string; GetStruct: Boolean = False; Return:
|
|||||||
|
|
||||||
function DoFindStruct(s: string; out Decl: TDeclaration; Return: TVarBase; var ArrayCount: Integer): Boolean;
|
function DoFindStruct(s: string; out Decl: TDeclaration; Return: TVarBase; var ArrayCount: Integer): Boolean;
|
||||||
|
|
||||||
function CheckIt(s: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase; var ArrayCount: Integer): Boolean;
|
function CheckIt(s: string; Item: TCodeInsight; out Decl: TDeclaration; Return: TVarBase; var ArrayCount: Integer; const CheckCore: Boolean = True): Boolean;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if Item.FindStruct(s, Decl, Return, ArrayCount) then
|
if Item.FindStruct(s, Decl, Return, ArrayCount) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
for i := High(Item.Includes) downto Low(Item.Includes) do
|
for i := High(Item.Includes) downto Low(Item.Includes) do
|
||||||
if CheckIt(s, Item.Includes[i], Decl, Return, ArrayCount) then
|
if CheckIt(s, Item.Includes[i], Decl, Return, ArrayCount) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
if (not CheckCore) then
|
||||||
|
Exit;
|
||||||
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
for i := High(CoreBuffer) downto Low(CoreBuffer) do
|
||||||
if CheckIt(s, CoreBuffer[i], Decl, Return, ArrayCount) then
|
if CheckIt(s, CoreBuffer[i], Decl, Return, ArrayCount, False) then
|
||||||
begin
|
Exit(True);
|
||||||
Result := True;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user