Description: fcl-passrc pascal parser
This file as text.
(active) Revisions in this set:
ac9d2b3cc5d8eaf34ea5aa3cb89cd850607be49c,d77f249332f6a73ebd3750a5c7463ed5b738a587,e72665051f16a80d673a8d1f92a9997fb35a5f26
33b29b0df4454ea4fde0782c6542668b324780b5,4401ef32bb51ed138015821fc2c8f51c467fec6d,4fdeada0a5b43442f09ebe64cee3cac9f2a2a860
714f0364205c9d439ed762a868648c34dd3c3677,d1bbc99e4815cc1d70dbd9fa475150b8f0940613,2fa60d1af3e3af9a2c39fd1dc6a0360310967900
76e6beb9298e48f7dd218101f3538f8fd539c420,1b8170d18dde78045d7269bfd58fb537b59dcabf,14d589955acc5cb7e241c64130021414ab38675a
10d9918596dfbac73b84c4cf567ee14caa6ef546,4dd01de381d056c627f71124c5b6dac6297d7837,3271d1aac712184001956ddb2c0f1b157b7c1107
1023a6ff6b975a44dd4b8b4ad536160e16646032,f4da53344019331a799d2d5ad0890646421fe99b,4820ec07468d58a7809e5f591a9c39bb8381c514
56ab4107059e7220b437bb205174d5626f4b82d8,ab809fa93cdf48281c334969058abd9001412fce,14f62b06d2d4633db5927eeb69bc2c7d74cf6864
78336d2cbacb12bcf3518cb0ea7968e5d697f26c,36eea0c819c51d0424648fcb50b4f6ee52702016,a16449c54e344c4cbcb7a87cfa3653e417aa0b3a
c6ce763336442f8b59239c3ef96be8709f2a4110,3713784e40f99bf14d41875267f6943541b994c5,9bf4f9e2ce4c04a0227f722416f510a0706de4ce
664a96c58489cbd7fc636a05f21ab7edd5d1ab84,4f3093657e11970b3b28f0d0bdcb7f39644e40ee,621dcbeaf2118a9cb7622db19bb5d859e0e22f9d
9387f87db917ae23a26d56050887ce3793e11eaa,e3e8cb5b583e4e1aa9c24c0bb942dde9490dd341,d31e219510b80dca9f0c676e5298ccdc2a935255
8d1989fc9a261715c0188be4902a3255cfda361d,72f852f653b73edfc14807bf971aefbd2782ed55,30e24e48c28dc947f2721e9e524fe72894a07776
a8d19553b9151b5e13e7f07dbe71bcee9037eef5,412de8a17dbf5b23e6f85e26216b5cb645e41346,f19402e81b15a4eeb63314b892d53b97cfa0e719
ee2d2a4bd4672135b746c925e8af12febf7149ae,10c60c45d5f9704e376c34c5168a20cbb17f6b43,c44f82d11a4b3400e0648508e9d6fda8d132d15f
51ce1e883f4112067b5d3d3910eab0a1cf5ce657,7be86f4635f6953a65462ffa7bfa602cceff8d71,151c7ba163b2fac5b44e05a07b79ef3d1e4382d4
a7545e08926723802528d0ed139606d4fc718fde,6f0f339fc431f92c23a20316b5b355ad688c9d51,14ae44c362cbb78cafd5354137a3cf86e5f5fa0f
7c68ead57aeae69834526b26b99bc40b2a2c941f,4181e24ea4517069f84d987204c715a19ff24640,dedab626fe7eb60d63858ae68055845ad848a93a
e9b8738f200167865f8c6d2d333a01243d25f9fd,89abeff99af7c1ab41b395d2e1466472f62542e2,3317078ae121ed1462a4033242e6edccf25f9dde
35fd79ca523485df5e927e9f1a426dd9d814b530,f50e6dfe8e1f84e98395f8de4683ad729b6895f2,385b271bcd6b4a8b845c89e12bdde6a48e8ba314
ee7cbb61a0e1a6d282206819832981d89bcae634,f102e40b691268bf3ec424491c918501fac489fb,621f3b8387ca140437280a6cd91936bbc304f2b1
20e3a7311c6a44fd44995f3e56c94098f60da32d,172803b2f7e5123e8d2f973dd281665e446340c1,02211971a39e4436e53a40833acfb026f874574d
653303274fc0b22a23f8909852a60a26ce2de92f,8499fb34b26cecd2550f8108aca26b57972bb8e6,309d8a90fd2b03fedbef3577b8b793d583c20fc5
36d7b534378976f9afae0001765e133166bac41e,13ebe495dfe85ce19b5013c995468ff5001a2c3d,43444ab7f0680d1b1b003aae5ab5a251e7d4e298
b4666447243b0d2c3fd8eb09884ae2363aa3cb85,64a8c73df231fecf3cdf24f05bace9ac8a155213,e49094f0456f6bff7a98b94d9c925f7a22b835c1
3f2e2ad0fa97b8bdcc10fd85fae8ca0bfe3d07ee,11e4f6285d382916fc6aa1807f4600cdf0b58ee2,eae098ae3e44dd98e50902ff9be8e2ba5729fcd2
1fc7609fa898962cb9187cee44e660d597fd76f2,0a8e174efc32eaf5d7c320680493f7df29411dac,5ca8593f143c6420891f96bb871e70354fc6de6c
75f8d43e363fe326b87dd7654c7427a13dcbbd68,6c98a632850715f63fa0c83473dd23d977ca8469,a2182cb7a5026cd3a746c559a93a7f2747c6e635
01c982ad707f23090c37e04f646ac7878e3bba0c,d7870c81e929f5869ee9e1c7d3666033cbe01bd4,889e3a15b65b08f070c03b4bc3f4bb11d3c56faf
08f396f64e990b96939676623dbe361c5218fd1e,047e360538318cf4fb6df9d2f1a29cf590311026,a9fbc6b9ed90ddb335f0b0ed5faeb29efbe56363
d96f9b805983071385d170abfaa5ae0a26e0b2c2,54a959808402a95d4bfffb1ee1ac757b15544f9d,4bdf6233c3eab01ab63f83bece826ccbd5b8931d
f3c94ccbce16c6981e302da918479feb159136b3,98f1fdda942a5b5172506be316c2c9d25ed4888c,3d7481b2f018ad0a650a74b8b80d409a10e80274
5b9d738da0f0f3f19552fabed9fd1f4a16cfc02a,944e4087aa2f2f3419fe9b9eb00693a6208b479c,3db1307ddc9d5d3db5dfc6dcad7e2c0ecdf91ff4
96e89c43b84655d81a26bed09123894da167506a,5b4ba67a855a82d6796df08b58e93118d0756e1e,a99575b74c9430865c6e84513be0dcd025112482
98b49b292d21b8ba1366ee97f94176118f90628b,440af0f81f55a802d7dcdecc8758a0b637fe02fa,e4356a0d38858f91e586e47968efaecabcbb2b14
6cfff900e8d7df566c11220c344afff9b39393e1,24bc93430e1e3c1e10bc3cd2983f71c9f105df25,17ed07ac90b4a59cd8c45fdbe6cff9fb59a52a0e
c75aa72b8f844d9a702d12c3c85e36e77c9a3c28,b1d8c20a166f870f26dd424f88750cb3a839bd22,47a4b9af4c4d41a68265fe4796079c841a922825
3ab38b69b86570680b287f7824d6fce7a49d3118,c7db379a4fd80a492cd2c40554d0260ee4cb74d2,b4ccac8defe602648cf287c6030a920b301bde46
b7c00a2116dda984ff81d6e465473f744d59bed3,5b1574bd63c81a0d4d10d977bfe612355a54359c,a7016a9ea014011d7d3c32ee77e7a7604eac4949
32137ac1605e47e9595d811aea1b5e5137d5a721,cc0170616343e33dd9e40a23ab51e601b63c59da,f3d93a47de53b3735b67c978859934505d2ab476
be5e84715cafda42c8782a7687b0ebaf507a2693,fc6fc6729541dbf9b38a32fc60946dd0da1a2af7,5ba83e8d3544681732d870100c54f02c71cda811
5f0c03be10a91eade862360b770b8de3302794bb,1f0488a9553fb0134a3595576243b9ec509427cf,79d139d494cfa49678643176ffbcb57612633f3b
3a5cd0760a6949b46a003b4058d317f933365084,9efa161ea7cd72aae456ed94bc1fc423d636c2e9,108ecaff225eff84e09afeeb3fb25e7b312221fd
3423fa9a8283e2b09b4d0d62efada80ddd755c0c,20ac72e7aacc29a8f71f84fc651d16d8ad1d5759,3822465e2f8e8114f0aa46bf8acbfb3214803557
0566580f1525d3b1de3531a8ab58743740d60325,4680d41d673eadcaf6658afca2dd1040eeb47374,3fcd8915772aba0e373da0510368430086a6cf6f
5bcedcfe305d7d241df316cb99859e0c8984575e,b245f2deb18e846d47ce27374a5f715125f44732,40c386d6bc6652eac19501b920055aee37dc077a
7fe602ebb0f7f0ea94c20c6f6969b8d1b14412ef,0c3cc7672e7caa741b9440ccd6e31411d8d722e3,c883683b6af371a8e4f2c4f709729d4ac1766d64
705b2cf62ab01655c2c7f3629feb386a3c86e703,10bbe83284ec6c42f13c8470ce95755401aeff9b,5769d737d1849f01f27faa65218cbb55ef505e2a
3fbb5e3ecfcf6507793dccd5a39e79df574780a1,9f16b0a0f4f4d21f1e965246e3b2401e062713ca,4d67cd80fcd11e84ece296ef27a2b3de39e1c78a
1748f7d860a6110534a72248c1d894fd31d1dfc1,459e1901d237f54e533cb1c2dc1233a8e5dfecf2,4e5be1337c9ea590cb757ee9e1502ef0aa989981
80c59d24743da5d6d294c7aea24fb7fdf078d6fd,9a7d1ad07cf35568b61952d9b725468b1119000e,8c28eb09353340bf68e7956ab0456e60bf5d7626
d18a565e72aaee4b9a6679de12d8875158a230af,507b88ab6f554b08a0d7a6f45a01549f803e69e3,5e41a1417f13ed23b0b3407a6689eaeff739720f
61645321961f5c055ccbe4b9f8a401811e7a7b52,08f44aff2c7b35086d9987b855d5ab6260ada904,74614c02c67ac3ef404458dc2c9ea93e60b79912
9602ec533622e9f565b89744d9272ecb02b0ac4c,c10e57f1d8cce6f00977245d184c3ab5c65c1260,c89b6a5908a1249edd80f59739fd7abf415290e4
cbd9f716c20f733f17a68c336d4ca4c9cd79291c,b97ace9168f2599a205548163728221910a49c73,5b3b041b96d45d737da34c03f1d2d51edc26782a
33c1e3e53715836b22d95702a7d1ece9d0c21c55,e86a4a9c1f6e4a406a8353d984c9f8f9b103af63,b2eb481780fb2489ff5377802d035e631ec0ac8c
0e3c9b9531d10efe478aa5d71847c7e49d9d9ecc,498408a376b74ab8d93a3d67dc0ea758d2786cef,53e4c5b5fbcfe0c0078591a736ecb8108a6a3309
370883c86a97a82b79d67c231b88ad7cd7144e6d,671079789c912a0fc31c164e309e3d7535437395,83f9a9450375451d72b358cb1e611b0a7ef81231
ac98583fb4db6cdc82b5dbc0c7739886f2a6b5f6,92b3e6a7d77bd3f5bde9d2e116b37d912380bc2f,97ca4d019a8a3ec7aa582be9c99fc953c313b8ae
afe6f1270b536e57afef32df55f7d91cc852a598,012dab8bd3cbac544faa0e867f346ae85accbc6a,0beb7870f3901de9a036670df6b90db71034f60b
5c24a474cca83ae46ebd64712b9e6f51def04a7c,33c39147cd564864908c34e2f08d4232147f6523,abbca70ef7a78e8cc5b2164abff308d6040cc249
378be9721cea87e923aa7a07f335ac67ec5b8444,ca2f40a76cd56c8085213b817e1fef91ca921645,4933f3b8439d59bfa0e09ec26d775eba93a72ec6
c8da8817bd481eb7a49f1f0ec5afef9246292b32,644f5d671714a11af595404ebfe17af400326a5f,435b6c0057597c6c68d9a994b047b1ddcc21f7b2
661e208808821c68ae46a79e2f3dba14db68a1e9,d6f307215c6e0cde5c0419df7183bbe1a2ca3983,1055c7e0dea4a2ed3c30c37cfba75ceae9f5dd98
7a24c2e7206c9f0ad36e9a9b901a5de3429a792c,89a4beab93310ca2c488b9c6ca23a46024f871ad,6faa27ce2c95a0dc7c53f0cc8257051da69217e6
f42875077d87c940569ba1712b969bc9d6c20d3d,d0c29542cde1f642ab7c825d4b8b0fcdd2acbe8a,8cd5c3a793c149f7170f4ac0b54f135f655dfe72
b432d3620551a27f34f7a5b2a5b51284d6c72adc,e1c7c239763f82f06aea93dba72dbe76b047aaf4,d10348774eda2459128d28c86785bc4422d0a253
e4a60c4c693fa018e3d6b94b82577a4424af34a6,fb3e87cc4ad4c0521b387dd4d8b670feb2ef16b1,691246d140bd40f90cfb16bbeb5ea415dede87f0
09c4c1f10223c5a33eb21269997733ef80a04b7b,bf45f4f098e333fbee0fc4d13e79bfa6757c07e4,f71412090abf30d7db9f2449fddf75105434474f
a67ad328884f6acbd78505a27311be82428fc11d,8a3309f9d8a25311093e04ae8aa393a3fce511e9,14264e0216abb12baa6c66c3fd8be99f226885f0
59e793c5237a3cd1b734827347efc6b8151cbc43,727332c5eafd8fecc38af70b0d6030c67b3f6809,baee5237881529ea068dd424e2f545aa753553fc
4f82ffa9830c50d1630b0a697cb2d70da175b773,7e501fa2aa13d2383bcbce41c7115f604cc72a01,1ad0ce208d43b780d6d30286aa8192541ff2666b
cb8a3b95eedab7c915bf1e6b4fcc2abb87e217de,2beda1b133eefb7ae8c23796bac89a1a71856c7f,115c38831f7be9d18d6248107bfd8dc79bc9a0da
91b9681f3d61b998f00638b405955f89cbfe8719,8d1c8e28204f429802d1dc37ab0b7593f117f57a,ba349f831343c311bfc1659786b845699177530e
Clicking a revision will expand files
* Convert array of jsvalue to array of const where appropriate
pastojs: fixed float / 0.0 results at compiletime in inf instead of divbyzero, issue
0038815
pastojs: low/high(astring)
pastojs: emulate compile time assign integer constant of different type
pastojs: emulate compile time assign integer constant of different type
* Parse linklib directive
* Pass all directives through OnDirective
fcl-pasrc: error if exports section inside inside procedure
* Restore previous default behaviour for OnDirective, put under option
fcl-passrc: parse goto statement
fcl-passrc: parse if then goto
* Fix cvar;export; parsing
* Objects can also be abstract in FPC
* "Class of" allowed for fields
* Export statement allows index and name
* Slightly better identifier position
* Fix from Henrique Werlang, use safename when writing pascal code (pas2js issue 39196)
fcl-passrc: fixed sourcepos of member const
fcl-passrc: fixed attributes of interface types issue 39198
pastojs: fixed await() as aclass, issue 39028
pastojs: export from units
pastojs: library added rtl.run, moved exports behind rtl.run, fixed export unit symbols
pastojs: mark record fields as used when passing record to a jsvalue parameter
pastojs: mark record fields as used when passing record to a jsvalue parameter
pastojs: fixed find generic proc overload without params, issue 38796
fcl-passrc: fixed generic method with Self do
fcl-passrc: fixed method combining overload and override
fcl-passrc: UseTypeInfo of record and class: skip generic elements
fcl-passrc: useanalyzer: skip not used record methods for typeinfo
* Fix case sensitivity of macro value
* Operator name can now also be finalize
* Finalize does not need result
* Copy & AddRef operators
fcl-passrc: fixed publish all members for typeinfo
fcl-passrc: fixed resourcestring
fcl-passc: removed testpasutils.pas
fcl-passrc: pasuseanalyzer: mark library export function result sub elements
fcl-passrc: fixed parsing class var var
fcl-pasrc: fixed multilinestrings # combos, double backticks become one, fixed apostroph, renamed MultilineStringsTrimLeft, MultilineStringsEOLStyle
fcl-passrc: anonymous procedure type
fcl-passrc: forbid nested anonymous procedure type
fcl-passrc: fixed mem leak on error during parsing function type
fcl-passrc: resolver: allow anonymous records only for var, const and variants
fcl-passrc: anonymous records
fcl-passrc: do not allocate a temp list
pastojs: fixed searching TJSPromise in global scopes
fcl-passrc: resolver: fixed call generic function with anonymous specialize function type
fcl-passrc: moved ReadNextPascalToken to fpscanner
fcl-passrc: fixed compile pscanner with pas2js
pastojs: fixed absolute result
fcl-passrc: fixed compile pas2js
fcl-passrc: added enums msFunctionReferences,msAnonymousFunctions
fcl-passrc: resolver: fixed error when accessing element of forward class
fcl-passrc: fixed method override modifier inherits overload modifier
fcl-passrc: fixed searching overload in mode delphi
fcl-passrc: resolver: fixed emit hints for used units
fcl-passrc: fixed parsing property hints
fcl-passrc: fixed releasing modules of a package
fcl-passrc: started transition TPasElement reference counting to Parent free
fcl-passrc: transition TPasElement from reference count to free
pastojs: TPasElement free instead of refence count
fcl-passrc: fixed directives DispatchField and DispatchStrField
pas2js: fixed mem leak pcu
fcl-passrc: TPasElement free instead of reference count
fcl-passrc: fixed compile
fcl-passrc: fixed overload double override
fcl-passrc: use TMaxFloat
fcl-passrc: resolver: allow for for-loop var only local vars
fcl-passrc: omit hint for not used anonymous type
fcl-passrc: omit hint for not used anonymous type
* Example program to print unit dependencies
* Improvements so whole RTL can be parsed
* Dotted filenames for package fcl-passrc
fcl-passrc: fixed adding specialized type behind array
* Start of error recovery
* More error recovery: variable (lists)
fcl-passrc: parsestatements: simplified
fcl-passrc: refactor ParseStatement, split ParseElse
fcl-passrc: refactor ParseStatement, split ParseFor
fcl-passrc: refactor ParseStatement
fcl-passrc: refactor ParseStatement
fcl-passrc: started resolver tests for multi errors
Fixed range check error, compiler error!
fcl-passrc, pastojs: fixed crash on evaluating ord(int),
gitlab 0039260
* Make sure it compiles with FPC 3.2.2 for pas2js...
fcl-passrc: less hints and fixed char tests
Protected the verbose of the resolver.
Allow an asynchronous procedure to be a promise.
pastojs: errors on illegal char const
* Fix compilation with pas2js
* Implement Delphi multiline strings
* Handle forward external objcclass
* Fixes for Delphi multiline strings in pas2js
* Some fixes to compile with pas2js
* Enable multiline strings in delphi mode
* Allow Delphi-style const [ref]
* Parse inline variable declarations
fcl-passrc: fixed parse untyped vars
* minor improvement for TPasRecordType.IsAdvancedRecord. Fixes issue
gitlab 0040539
fcl-passrc: fixed compile with pas2js
pastojs: fixed parsing multi line comment
fcl-passrc: fixed precedence of multiply and power
fcl-passrc: delphi multiline strings as separate TPasExprKind pekStringMultiLine
* Add dpktolpk unit plus example
* Small improvements, quiet mode
* Option to warn about not found resource files instead of error
* PAckage name can contain package keyword
* Fix compiling system unit
* Fix compilation in pas2js
* Minor improvement, fix by lagprogramming. Fixes issue
gitlab 0040922
* Optimize ExtractFileUnitName
fcl-passrc: started test for method param attributes
fcl-passc: fixed GetDeclaration of specialize param types
fcl-passrc: useanalyzer: fixed marking inline specialize expression of a record method
fcl-passrc: parse and resolve attributes of method arguments
fcl-passrc: fixed forbid anonymous range type as proc arg type
fcl-passrc: parser: forbid local types as proc args
fcl-passrc: parser: forbid anonymous/local types in proc args and result types
fcl-passrc: option to parse directive rtti
fcl-passrc: resolver: inherit RTTI visibility
* dotted RTL compilation fix after 9a7d1ad07cf35568b61952d9b725468b1119000e
fcl-passrc: fixed proc arg file
fcl-passrc: fixed error message when namespace not found
fcl-passrc: useanalyzer: fixed typeinfo(Result)
* Patch from Simone Tacconi to fix GetDeclaration for specialize types. Fixes issue
gitlab 0041095
* Patch from Simone Tacconi to fix GetDeclaration for string types. Fixes issue
gitlab 0041099
* Patch from Simone Tacconi to fix WriteProc. Fixes issue
gitlab 0041100
* Patch from Simone Tacconi to fix set getdeclaration. Fixes issue
gitlab 0041106
* Patch from Simone Tacconi to fix set getdeclaration. Fixes issue
gitlab 0041107
* Patch from Simone Tacconi to fix alias type getdeclaration. Fixes issue
gitlab 0041109
* Patch from Simone Tacconi to fix alias type getdeclaration. Fixes issue
gitlab 0041116
* Patch from Simone Tacconi to fix alias type getdeclaration. Fixes issue
gitlab 0041115
* Complete TPasClassType.GetDeclaration. Patch by Simone Tacconi. Fixes issue
gitlab 0041114
* Fix parsing of system unit
* Patch from Simone Taccone to allow to show accessors on properties. Fixes issue
gitlab 0041123
* Fix by Simone Tacconi to fix with..do writing. Fixes issue
gitlab 0041124
pastojs: extended rtti: strict private, protected
fcl-passrc: fixed generic templates as string
* Correctly write labels. Patch by Simone Tacconi. Fixes issue
gitlab 0041133
fcl-passrc: useanalyzer: fixed skipping generic members
* Address error found in pas2js+test
fcl-passrc: fixed compile with pas2js, nicer error msg
* Improve unresolved type reference writing. Fixes issue
gitlab 0041143
fcl-passrc: pasuseanalyzer: analyze unit: skip foreign classes, mark nested types
fcl-passrc: fixed initialize var
fcl-passrc: fixed TPasImplExceptOn.TypeName
* Add WinApi call modifier
* Add support for weakexternal modifier
* Fix 3.2.2 compilation of pas2js
fcl-passrc: fixed in mode delphi pass a function without at-operator to a proc type arg, pastojs: using new override
* Allow to parametrize for documentation writing
* Make GetDeclaration accept some options for some types
* Do not raise exception when no type is known for a variable
* Fix special case of specialization function call
* Add support for align directive on record
* Add writing of file type
* Corrected wrong "fix" from MR !1241
* Record that a variable is a thread var
* Create different type names for codepage strings
* Small pasresolver fix when computing addresses of deref
* Actually use tkMultilineString
* Add support for operator overloading
* Fix tests: add proMaximizeFPCompatibility flag
* Const generics support in parser
* Add support for resolving const generics
* Unique name for string lengths, fix operator result name
* Validation of const generic type limits
Variant type exists only in FPC not in Pas2JS.
The TResEvalString only exits if the FPC_HAS_CPSTRING is defined.