David Anderson
039572060e
Add new dynamic array syntax.
2014-11-08 02:48:13 -08:00
David Anderson
f08e53f5d2
Make sizeof on indeterminate arrays an error.
2014-11-08 02:07:43 -08:00
David Anderson
6d507ceb27
Add a special case for assigning a string literal to a char array.
2014-11-08 02:04:11 -08:00
David Anderson
70e095f320
Define post-fix arrays as determinate and pre-fix arrays as indeterminate.
2014-11-07 22:39:00 -08:00
David Anderson
a8796543af
Use symbols for fatal errors and bump them by 20 slots.
2014-11-07 17:41:33 -08:00
David Anderson
2c31b99ce3
Move is_new and has_postdims bits out of declinfo and into typeinfo.
2014-11-07 17:05:27 -08:00
David Anderson
613b06f6c0
Improve error messages when we can't find a typeexpr on a method.
2014-10-30 21:15:48 -07:00
David Anderson
97c3a2bc6e
Fix a crash when we fail to parse a typexpr in a global declaration.
2014-10-30 21:09:10 -07:00
David Anderson
eaff5c9364
Allow any in new-style natives.
2014-10-30 17:19:01 -07:00
David Anderson
e7fc06910b
Fix a crash when properties have setters but not getters.
2014-10-29 20:51:03 -07:00
David Anderson
d4fb74ef9a
Fix regression where duplicate function names were not an error.
2014-09-16 22:32:46 -07:00
Nicholas Hastings
c62e7458f9
Disable RTTI for Loader, Logic, and JIT bins
2014-09-11 17:15:59 -07:00
Nicholas Hastings
9a9446400d
Nuke spurious NULL checks in spcomp to appease Clang 3.5
2014-09-09 22:04:24 -04:00
David Anderson
d1aa9a3513
Merge branch 'calli-7'
2014-09-07 15:08:51 -07:00
David Anderson
60eb8ca4bd
Merge branch 'master' into calli-5
...
Conflicts:
public/amtl/am-utility.h
2014-09-07 15:03:28 -07:00
David Anderson
5b85f41fec
Use the correct string table for tag names.
2014-09-07 15:02:09 -07:00
David Anderson
37638ba6fd
Remove support for multiple tags on an argument.
2014-09-04 09:59:43 -07:00
David Anderson
01d1c0c806
Add a flag for warnings-as-errors.
2014-09-03 11:04:25 -07:00
David Anderson
9d337dd1a9
Merge pull request #146 from alliedmodders/unions
...
Add a "union" keyword to replace funcenum.
2014-08-31 16:02:59 -04:00
David Anderson
a1b7c32b29
Add a "union" keyword to replace funcenum.
2014-08-28 14:02:08 -07:00
Ryan Stecker
302dc1cb8a
Add test.
2014-08-26 14:58:58 -05:00
David Anderson
6db4f31a10
Remove weird tag flags.
2014-08-24 20:47:07 -07:00
David Anderson
63e5ab18ff
Remove support for multiple tags on an argument.
2014-08-24 18:59:51 -07:00
David Anderson
d230711e4d
Bump SourcePawn version to 1.7 to match SourceMod.
2014-08-23 19:26:51 -07:00
Ryan Stecker
74908098f4
Allow trailing commas in string array declarations. (bug 6239)
2014-08-23 18:15:08 -05:00
David Anderson
078ee76491
Re-add .dbg.natives.
2014-08-23 13:40:50 -07:00
David Anderson
98ec07a419
Add debug info tables to smxbuilder.
2014-08-23 13:26:03 -07:00
David Anderson
c4056aea5d
Rewrite the assembly pipeline.
...
This patch uses SmxBuilder from spcomp2 to replace the old assemble()
pipeline. Instead of generating into an old AMX structure, and then
decoding that into SMX, we now directly generate into SMX. This greatly
simplifies code generation and smx building.
2014-08-23 13:25:58 -07:00
David Anderson
7a51d5d549
Remove unused variables.
2014-08-23 13:25:48 -07:00
David Anderson
0cf8eb2854
Fix Windows build more.
2014-08-22 21:07:49 -07:00
David Anderson
d20ba38d6b
Fix Windows build.
2014-08-22 20:47:18 -07:00
David Anderson
4d42fa0305
Fix Windows build.
2014-08-22 20:41:24 -07:00
David Anderson
d562593d31
Fix build.
2014-08-22 18:27:46 -07:00
David Anderson
27c3866b90
Merge branch 'calli-4'
2014-08-22 10:10:48 -07:00
David Anderson
50f3ec8da2
Merge branch 'calli-3'
2014-08-22 09:59:11 -07:00
David Anderson
f42651a813
Merge branch 'calli-2'
2014-08-22 09:58:14 -07:00
David Anderson
91f0f1001b
Merge pull request #134 from alliedmodders/calli
...
Simplify how functags work.
2014-08-22 09:54:48 -07:00
David Anderson
a09735a4c7
Remove SC_FUNC and SC_VDEFINE.
2014-08-22 00:53:47 -07:00
David Anderson
6291374b35
Move rtti hacks.
2014-08-22 00:41:32 -07:00
David Anderson
dcd246c7ef
Port scvars to C++.
2014-08-22 00:39:03 -07:00
David Anderson
29fbbade69
Port sc1 to C++.
2014-08-22 00:38:04 -07:00
David Anderson
48d228e2b1
Port sc2 to C++.
2014-08-22 00:23:02 -07:00
David Anderson
4608050bd2
Port sc3 to C++.
2014-08-22 00:17:00 -07:00
David Anderson
234b4907ed
Port sc4 to C++.
2014-08-22 00:12:16 -07:00
David Anderson
9c005d93ed
Port sc5 to C++.
2014-08-22 00:09:28 -07:00
David Anderson
3eb1faa470
Port sc6 to C++.
2014-08-22 00:07:40 -07:00
David Anderson
142fbaafdd
Port sc7 to C++.
2014-08-22 00:04:48 -07:00
David Anderson
afd6009fda
Port scexpand and sci18n to C++.
2014-08-22 00:00:31 -07:00
David Anderson
3e8157c6bc
Port lstring and sclist to C++.
2014-08-21 23:58:19 -07:00
David Anderson
2ba4fb180e
Move scstate.c to C++.
2014-08-21 23:54:10 -07:00
David Anderson
261188fd1b
Port a bunch of legwork files to C++.
2014-08-21 23:53:11 -07:00
David Anderson
5a4c50ce55
Port sp_symhash to C++.
2014-08-21 23:36:26 -07:00
David Anderson
f5efdbf6f5
Remove hardtabs and fix style issues.
2014-08-21 22:42:22 -07:00
David Anderson
25241fa278
Remove file.
2014-08-21 22:19:25 -07:00
David Anderson
225954a27c
Modernize the smx headers.
2014-08-21 22:16:07 -07:00
David Anderson
1f51393e26
Fix typedefs not fixing string sizes (bug 6220).
2014-08-20 00:26:09 -07:00
David Anderson
d91d69f72e
Remove newline.
2014-08-20 00:06:33 -07:00
David Anderson
e5e2c1fa3d
Simplify functag handling.
2014-08-20 00:00:24 -07:00
David Anderson
942a3cd155
Another dedent.
2014-08-19 22:32:02 -07:00
David Anderson
8dc4fcc728
Remove allowproccall code, dedent a block.
2014-08-19 22:29:13 -07:00
David Anderson
385d3708a3
Fix style issues in sctracker.c.
2014-08-19 22:17:10 -07:00
David Anderson
56cf6e723e
Remove unnecessary changes.
2014-08-17 01:21:35 -07:00
David Anderson
cef9d9d162
Fix returning strings from functions with variadic arguments.
2014-08-17 01:17:10 -07:00
Asher Baker
f570fa414b
Reformatted compiler output a little. (r=dvander)
2014-08-12 18:35:43 +00:00
David Anderson
ad376ff0b8
Introduce a typedef keyword.
2014-08-03 21:51:34 -07:00
David Anderson
09edda93ad
Fix style atrocities in sc1.c.
2014-08-03 18:53:58 -07:00
Ryan Stecker
fad5c590b6
Fix not adding the "include" directory to the spcomp search path.
2014-07-24 15:35:44 -05:00
David Anderson
2553d02698
Fix build.
2014-07-24 10:40:51 -04:00
David Anderson
34e57b77b1
Fix spacing.
2014-07-24 08:54:52 -04:00
David Anderson
fa446f74a1
Generate .scp files as part of the build process.
2014-07-24 07:58:03 -04:00
David Anderson
94b64cd6fc
Regen sc5.scp.
2014-07-24 06:55:57 -04:00
David Anderson
97e821dd6f
Improve error messaging for reserved keywords (bug 6199).
2014-07-24 06:51:03 -04:00
David Anderson
3fc05056b0
Rename <unknown> to __unknown__ to quell sc7 asserts.
2014-07-23 23:25:12 -07:00
David Anderson
f41b3a2b06
Enable binreloc for OS X.
2014-07-23 23:21:03 -07:00
Ryan Stecker
6a2ec15041
Fix error message 102 to include the spectype that's missing.
...
Additionally this fixes invalid usage of error 102 in grow_stgbuffer.
2014-07-23 18:52:22 -05:00
Ryan Stecker
f3671e55db
Close file handle on success in pc_opensrc.
2014-07-22 17:33:26 -05:00
David Anderson
2a99eecdb6
Fix bug in variadic argument parsing.
2014-07-21 23:01:35 -07:00
David Anderson
57303f4310
Merge pull request #103 from alliedmodders/fix-incdec
...
Fix postinc/dec operations on accessors.
2014-07-20 21:24:57 -07:00
David Anderson
686890ec10
Clean up the struct syntax and force it to use newdecls.
2014-07-20 12:16:23 -07:00
David Anderson
8aa28e2c8d
More indentation, spacing, and style fixes in sc1.c.
2014-07-20 11:50:57 -07:00
David Anderson
16177e9ecc
Fix indentation, spacing, and style in declstruct().
2014-07-20 11:46:02 -07:00
David Anderson
2b74f1bd61
Remove unused function.
2014-07-20 11:19:48 -07:00
David Anderson
5daa420aed
Fix inc/dec operations on accessors.
2014-07-20 11:18:38 -07:00
David Anderson
4051756576
Check for null map in matchtag().
2014-07-20 10:15:49 -07:00
David Anderson
b0e98b16ec
Mark usage correctly when invoking special natives.
2014-07-17 22:30:13 -07:00
David Anderson
f79f5df5ab
Allow the any type in non-native newdecls.
2014-07-17 21:43:59 -07:00
David Anderson
beeb848724
Rename.
2014-07-17 21:19:31 -07:00
David Anderson
805b66e539
Fix null not working with comparisons.
2014-07-17 21:18:49 -07:00
David Anderson
84344c1592
Fix const with newdecls and a varargs bug. (bug 6179)
2014-07-17 20:44:54 -07:00
David Anderson
9c6b82f3a5
Merge pull request #89 from alliedmodders/bug-6176
...
Fix crash with malformed arguments (bug 6176).
2014-07-13 11:26:57 -07:00
David Anderson
2ea9ec50b5
Merge pull request #91 from alliedmodders/bug-6183
...
Show errors for methods that are unused. (bug 6183)
2014-07-13 11:24:51 -07:00
David Anderson
58a3cb4a06
Merge pull request #90 from alliedmodders/bug-6178
...
Allow chaining off method calls. (bug 6178)
2014-07-13 11:24:22 -07:00
David Anderson
71fb0d1d18
Address review comment.
2014-07-12 21:21:07 -07:00
David Anderson
cd6997cd0b
Merge pull request #88 from alliedmodders/bug-6175
...
Fix and formalize newline and semicolon behavior in methodmaps. (bug 6175)
2014-07-12 20:45:35 -07:00
David Anderson
5dd5b5131b
Show errors for methods that are unused. (bug 6183)
2014-07-12 10:28:29 -07:00
David Anderson
1a83ca57fc
Allow chaining off method calls. (bug 6178)
2014-07-12 10:05:43 -07:00
David Anderson
21d3a7f93e
Fix crash with malformed arguments (bug 6176).
2014-07-12 09:31:51 -07:00
David Anderson
294fdee1e6
Clarify lexpop().
2014-07-12 00:09:05 -07:00
David Anderson
3d3e5c40c2
Fix and formalize newline and semicolon behavior in methodmaps. (bug 6175)
2014-07-12 00:07:34 -07:00
David Anderson
919e859a6d
Fix "static stock" not working (bug 6174).
2014-07-10 23:18:07 -07:00
David Anderson
1e0155ad17
Merge pull request #81 from alliedmodders/unkeyword-class
...
Unkeyword "class", make it contextual.
2014-07-08 09:24:11 -07:00
David Anderson
02b7f42811
Unkeyword "class", make it contextual.
2014-07-08 00:44:34 -07:00
David Anderson
e76f553957
Begin locking down function types.
2014-07-08 00:26:37 -07:00
David Anderson
2ade122cd2
Merge branch 'master' into fix-null-func
...
Conflicts:
sourcepawn/compiler/sc5.scp
2014-07-08 00:06:04 -07:00
David Anderson
e57a323dc8
WIP.
2014-07-07 23:31:31 -07:00
David Anderson
ff31d8df49
Update nominations.sp and improve compiler error messaging.
2014-07-06 23:59:15 -07:00
David Anderson
44316d63cc
Add setters and fix some methodmap bugs.
2014-07-06 23:37:43 -07:00
David Anderson
1277bbd50e
Mark the expression before flushing the staging buffer.
2014-07-05 14:15:44 -07:00
David Anderson
9ae3256bc0
Rename the null tag to null_t.
2014-07-05 13:31:10 -07:00
David Anderson
49380620e0
Merge branch 'master' into nullable
2014-07-05 13:24:45 -07:00
David Anderson
9ff38bcf80
Add nulls, and more newdecl and type system features.
...
New null_t type has a constant "null", which can be assigned to objects.
Methodmaps can now be "nullable", accepting null_t types.
The delete keyword now zaps non-const lvalue inputs.
Fixed some newdecl arguments not accepting references.
Allow functag matching to coerce arguments and return values.
Allow functags to accept new-style types as a return value.
2014-07-05 13:20:06 -07:00
Ryan Stecker
6864bf0068
Only spew JIT compilation and opcodes when built with JIT_SPEW defined.
2014-07-05 10:57:08 -05:00
David Anderson
96bbd4d7e0
Fix potential bugs in restoring newdecl state.
2014-07-05 01:13:45 -07:00
David Anderson
da33c79d8b
Add #pragma newdecls required|optional.
2014-07-05 01:08:14 -07:00
David Anderson
bfc65b086a
Fix bug in newdecls in for loop initializers.
2014-07-05 00:48:32 -07:00
David Anderson
680a8e0283
Fix tests.
2014-07-05 00:44:46 -07:00
David Anderson
f62769108c
Fix some local declarations not working.
2014-07-04 23:53:16 -07:00
David Anderson
386b178ef3
Fix uninitialized variable warning.
2014-07-04 23:00:00 -07:00
David Anderson
79d9a49d28
Fix compiler bug.
2014-07-04 22:46:55 -07:00
David Anderson
376eb9725e
Add support for new-style declarations in local variables.
2014-07-04 21:16:39 -07:00
David Anderson
5d753c2697
Merge pull request #67 from alliedmodders/glbdecls
...
Add support for new-style declarations in globals.
2014-07-04 17:21:26 -07:00
David Anderson
1c41f905f9
Add some tests and errors for bad void usage.
2014-07-04 17:14:40 -07:00
David Anderson
dfa9a8f134
Add tests.
2014-07-04 17:01:12 -07:00
David Anderson
49eee8c04e
Fix regression in methodmap tagging.
2014-07-04 16:55:33 -07:00
David Anderson
58b9fd57b2
Remove unused "no-postdims" flag.
2014-07-04 16:41:38 -07:00
David Anderson
7e770908fb
Add support for decl lists.
2014-07-04 16:37:52 -07:00
David Anderson
3cf9e56a19
Fix various bugs in global newdecl support.
2014-07-04 14:31:56 -07:00
David Anderson
19815d42c3
Add new-style declaration support for global declarations.
2014-07-04 00:37:39 -07:00
David Anderson
932a8028ca
Merge pull request #60 from VoiDeD/ambuild-remove-tp-flag
...
Remove the /TP (compile as C++) msvc flag from projects that should be compiling as C.
2014-07-03 09:24:51 -07:00
David Anderson
bdb5ef506b
Merge pull request #64 from alliedmodders/newdecl
...
New declaration syntax: arguments.
2014-07-03 09:18:25 -07:00
David Anderson
438fade64f
Bug fixes.
2014-07-03 00:34:11 -07:00
David Anderson
a15153e9b8
Improve error messaging.
2014-07-03 00:21:18 -07:00
David Anderson
ed4cca0225
Bug fixes.
2014-07-03 00:14:12 -07:00
David Anderson
86cd906371
Remove typeinfo_t::type.
2014-07-02 23:17:30 -07:00
David Anderson
153bbba641
WIP.
2014-07-02 23:01:00 -07:00
David Anderson
e46c49abe0
Fix bug.
2014-07-02 21:59:04 -07:00
David Anderson
10c8b78a16
Use in-memory buffers for reading files, and handle newlines better.
2014-07-02 21:52:17 -07:00
Ryan Stecker
db98c98a1a
Remove the /TP (compile as C++) msvc flag from projects that should be compiling as C.
2014-07-02 13:46:39 -05:00
David Anderson
84f9b2bf35
Remove accidental files.
2014-07-01 22:06:33 -07:00
David Anderson
beb557aa56
Add unstaged changes.
2014-06-30 20:11:18 -07:00
David Anderson
6f3b08bbae
Initial import of new decl parsing structure.
2014-06-30 20:10:15 -07:00
David Anderson
b8bd7c517e
Add parsing functions.
2014-06-26 21:05:19 -07:00
David Anderson
99f4cdb3e4
New type system.
2014-06-24 23:37:14 -07:00
David Anderson
ec61d4d188
Add a general profiling abstraction layer.
2014-06-24 01:04:13 -07:00
David Anderson
92ace5497f
More MSVC fixes.
2014-06-22 22:47:17 -07:00
David Anderson
8005009420
Workaround buggy C99 support in MSVC.
2014-06-22 22:44:16 -07:00
David Anderson
123c7f6b06
Fix METHOD_NAMEMAX.
2014-06-22 22:16:41 -07:00
David Anderson
a17ad1c5a5
Add property accessors to methodmaps.
2014-06-22 22:02:02 -07:00
David Anderson
b6eb3b041b
Fix bug in requiring braces for new methods.
2014-06-22 13:28:35 -07:00
David Anderson
354022888f
Add support for fully inline functions in methodmaps.
2014-06-22 13:21:46 -07:00