Commit Graph

508 Commits

Author SHA1 Message Date
Rika Ichinose
224f62a843 Report correct error positions inside macros (at least more often). 2024-11-09 14:05:53 +00:00
florian
f2d44148fb * patch by Rika to fix position reporting in macro redefintions, resolves #40082 2024-11-08 22:14:30 +01:00
Rika Ichinose
2596af84fa Optimize {$DEFINE x := y} and refactor tmacro.buftext. 2024-11-03 17:33:44 +00:00
florian
a9f522c29d * consolidated code 2024-10-21 23:04:25 +02:00
Pierre Muller
74d2d2f0d8 Remove unneeded, and possibly wrong typecast to fix cycle with -CR option 2024-10-21 12:13:14 +00:00
florian
397293f09f + more fixes to mark symbols used by preprocessor expressions properly
+ made MarkSymbolAsUsed more fail safe
  + tests
2024-10-20 17:28:20 +02:00
florian
22ec4a2033 * mark symbols used in conditional compiling expressions using sizeof, resolves #40955 2024-10-20 14:37:09 +02:00
Nikolay Nikolov
7fc6d5aaa1 + introduced method tscannerfile.readval64, similar to readval, but returns an int64 2024-08-24 13:58:49 +03:00
florian
a9c88ace25 * handle unary minus in the preprocessor, resolves #40782 2024-05-13 22:36:40 +02:00
florian
5086cf7e72 * set packenum and setalloc to defined values when changing mode, resolves #40056 2024-03-08 20:12:55 +01:00
Michaël Van Canneyt
462c201ce6 * Introduce m_processed 2024-03-05 07:56:14 +00:00
Michaël Van Canneyt
6f7481fd24 * Remove freeold from set_current_scanner 2024-03-05 07:56:14 +00:00
Michaël Van Canneyt
93ae6261cc * Make current_scanner a function/procedure to better control lifetime 2024-03-05 07:56:14 +00:00
Michaël Van Canneyt
fe62b3ace8 * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
florian
2575cbc439 * complain about turned off support of c style operators only in the parser,
so error recovery is better
2024-02-11 11:05:05 +01:00
Pierre Muller
952f4bae17 Fix wrong explicit typecast of srsym variable (caught by -CR option) 2024-01-02 14:16:38 +01:00
Ryan Joseph
a31f37b5e5 + Implement support for parsing sets in preprocessor directives 2024-01-02 07:09:21 +01:00
florian
e5de38c42d * patch by lagprogramming: Improvement of function SetCompileModeSwitch, resolves #40525 2023-11-19 13:37:37 +01:00
Michael VAN CANNEYT
f364bb6b11 * Forbid use of string alias in system unit 2023-07-22 08:26:22 +00:00
Pierre Muller
c38cc828e8 Add new test code to verify that tentfile.buf limits are not overpassed 2023-05-23 22:39:03 +02:00
Pierre Muller
aaf356ba9f Avoid read past buffer end for empty source when checking for utf-8 signature 2023-04-12 20:10:44 +02:00
florian
488c389b9b + support FILEEXISTS(...) in preprocessor expressions, resolves #39527
+ tests
  * tscannerfile.readpreproc sets preproc_pattern correctly for quoted strings
2023-03-20 23:17:09 +01:00
florian
ece59f2534 * also count the use of enum syms in preprocessor expressions correctly 2023-02-16 23:02:47 +01:00
florian
8ef0f59025 * mark constant symbols used in preprocessor expressions as used, resolves #40108 2023-01-24 22:36:26 +01:00
Sven/Sarah Barth
188cac3bc6 * enable OpenStrings by default in mode Delphi
+ added test
2022-10-08 13:52:34 +02:00
florian
dbbb91705f * improved fix for #39912 2022-09-23 21:56:24 +02:00
florian
af1194de4d * end of an include file works like a new line with regard to single line (//) comments, resolves #39912 2022-09-19 23:03:36 +02:00
Jonas Maebe
b0e1867b4c symcreat: support for scanner/parser escape sequences
Support escape sequences when parsing internally generated code. Used for now
to force interpreting certain identifiers as unit/namespace identifiers.
2022-09-16 11:21:05 +02:00
florian
8363c48863 * patch by rika: simplify tscannerfile.readstring, resolves #39835 2022-07-12 22:12:23 +02:00
Pierre Muller
5acd7a7b83 Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
Karoly Balogh
ff68e7b9de * m68k-atari: override the exeext globally, not just at the final step of the linking. this fixes 'Linking <exename>.ttp' messages, when in fact <exename>.prg gets generated 2022-02-14 15:33:36 +01:00
florian
2a93e65511 * seperator => separator 2022-01-02 13:12:33 +01:00
florian
d2447026de + modeswitch UNDERSCOREISSEPERATOR, active by default in delphi modes:
support _ as seperator in numbers, it is ignored while reading them, resolves #39504
2022-01-01 23:28:36 +01:00
Florian Klämpfl
25eab57a58 * allow %... for binary constants in delphi mode, resolves #39503 2021-12-29 15:37:53 +01:00
florian
e4ee8fa6a2 * patch by Rika to pass some strings by reference, resolves #39338 2021-11-09 22:41:52 +01:00
florian
dcb1fcd9b8 + support $lgeacyifend directive, resolves #37676 2021-11-01 23:24:42 +01:00
florian
ff3acfb8cd * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
florian
77cc2f4ced * decrease macro nesting counter early when expanding empty macro
to avoid errors about too depth macro nesting, resolves #38802

git-svn-id: trunk@49265 -
2021-04-25 19:49:26 +00:00
Jonas Maebe
ff3f812d97 * fix conversion of true/false macro definitions to boolean values
(mantis #38492)
   o since the macro lookups are recursive, "mac" will usually be nil
     afterwards (unless we found an undefined macro)

git-svn-id: trunk@49160 -
2021-04-10 10:56:02 +00:00
florian
9803318fef * give a proper error if macros are too deeply nested
git-svn-id: trunk@48357 -
2021-01-23 21:29:37 +00:00
svenbarth
a8d316d187 + add method to retrieve an integer expression from the scanner
git-svn-id: trunk@47601 -
2020-11-26 20:13:34 +00:00
Jonas Maebe
38a059f039 * give an error when trying to define a macro/compiler variable with
an empty name

git-svn-id: trunk@47300 -
2020-11-03 21:34:19 +00:00
florian
5b06af8886 * delphi has excessprecision turned on by default
git-svn-id: trunk@47245 -
2020-10-28 21:37:26 +00:00
florian
9ea52b8578 + new switches -DD and DT which allow to pass an arbitrary string which is used by %DATE%/%TIME%
git-svn-id: trunk@47132 -
2020-10-18 17:13:38 +00:00
florian
e83d214e98 + allow in ISO mode that { ... } and (* ... *) comments are paired, resolves at least partly #37428
git-svn-id: trunk@46903 -
2020-09-20 08:47:00 +00:00
yury
154ada9e86 * 8086: enable cs_force_far_calls when m_nested_procvars is enabled.
* 8086: when the compiler mode switches to a non-TP mode, enable cs_force_far_calls.

git-svn-id: trunk@46454 -
2020-08-16 10:34:23 +00:00
yury
f7d14128b5 * 8086: Do not force far calls in the TP mode by default. This is TP compatible. Other modes need forced far calls by default in order to compile non-TP code.
git-svn-id: trunk@46433 -
2020-08-14 16:56:13 +00:00
svenbarth
bd01182ff0 * add support for AND, OR, XOR and NOT of integer values in preprocessor directives (Delphi allows that as well)
+ added test

git-svn-id: trunk@45053 -
2020-04-24 14:09:04 +00:00
svenbarth
ae2801c707 * use asInt64 instead of asInt to evaluate an Integer expression
git-svn-id: trunk@45052 -
2020-04-24 14:09:02 +00:00
svenbarth
bffe99f59f + add an asInt64 to texprvalue
git-svn-id: trunk@45051 -
2020-04-24 14:09:00 +00:00