Commit Graph

57 Commits

Author SHA1 Message Date
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
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
10c8b78a16 Use in-memory buffers for reading files, and handle newlines better. 2014-07-02 21:52:17 -07:00
David Anderson
beb557aa56 Add unstaged changes. 2014-06-30 20:11:18 -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
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
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
David Anderson
ffd97a1fd0 Fix typeexpr unknown token not reporting an error message. 2014-06-22 01:46:43 -07:00
David Anderson
5b12f456ac Add support for inline native methods. 2014-06-22 01:44:23 -07:00
David Anderson
10a511a35e Introduce 4-token lookahead buffer. 2014-06-21 23:35:55 -07:00
David Anderson
861953d736 Allow base destructors to run and fix some error reporting. 2014-06-21 12:27:04 -07:00
David Anderson
63ad5eff18 Introduce basic methodmaps (PR #38).
commit 1e5213d43f
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 04:09:27 2014 -0700

    Quell MSVC C99 bugs.

commit f2e166c592
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 03:59:23 2014 -0700

    Fix varying levels of stupid memory errors.

commit b0773d7be4
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 03:36:39 2014 -0700

    Fix memory leak in parsing some control flow structures.

commit 5aca55713c
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 03:35:17 2014 -0700

    Fix memory leak in struct parsing.

commit b46ec5cd28
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 03:32:03 2014 -0700

    Fix build.

commit 17bbbb9a46
Merge: c083409 2107599
Author: David Anderson <dvander@alliedmods.net>
Date:   Sat Jun 21 01:26:27 2014 -0700

    Merge branch 'master' into methodmaps

commit c083409b56
Author: David Anderson <dvander@alliedmods.net>
Date:   Fri Jun 20 23:49:36 2014 -0700

    Add VS2k13 support.

commit b799377849
Author: David Anderson <dvander@alliedmods.net>
Date:   Fri Jun 20 01:28:08 2014 -0700

    Implement destructors.

commit 1a340dec26
Author: David Anderson <dvander@alliedmods.net>
Date:   Fri Jun 20 00:08:04 2014 -0700

    Add some tests.

commit 12db52ee64
Author: David Anderson <dvander@alliedmods.net>
Date:   Fri Jun 20 00:05:49 2014 -0700

    Initial implementation of constructors.

commit 074669a658
Author: David Anderson <dvander@alliedmods.net>
Date:   Thu Jun 19 22:42:35 2014 -0700

    Add simple test harness.

commit 27c1e3cf14
Author: David Anderson <dvander@alliedmods.net>
Date:   Thu Jun 19 22:15:42 2014 -0700

    Big refactoring for new syntax.

commit f3c37fdc91
Author: David Anderson <dvander@alliedmods.net>
Date:   Thu Jun 19 22:12:54 2014 -0700

    Refactor tests for the new syntax.

commit 6211f392f8
Author: David Anderson <dvander@alliedmods.net>
Date:   Wed Jun 18 22:25:48 2014 -0700

    Make lexer tokens an enum.

commit 5210b01375
Author: David Anderson <dvander@alliedmods.net>
Date:   Tue Jun 17 06:48:15 2014 -0700

    Add comment.

commit 06688ff4ac
Author: David Anderson <dvander@alliedmods.net>
Date:   Tue Jun 17 06:46:10 2014 -0700

    Allow |this| to be a base type of the methodmap.

commit 05cf368202
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 22:11:58 2014 -0700

    Unify duplicate typesymbol checking.

commit 09161bf269
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 19:53:36 2014 -0700

    Close loophole that allowed methodmaps for enums.

commit 5bb4aeba89
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:50:42 2014 -0700

    Add tests and dbi/handle changes.

commit b9203e2491
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:38:29 2014 -0700

    Ensure methodmap tags are fixed.

commit 878b80fd87
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:36:04 2014 -0700

    Implement inheritance.

commit 6ba9e004fb
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:31:00 2014 -0700

    Refactor matchtag() to not be insane.

commit 4ede6343b0
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:20:50 2014 -0700

    Fix indenting.

commit e3ddef8916
Author: David Anderson <dvander@alliedmods.net>
Date:   Mon Jun 16 01:20:27 2014 -0700

    Initial prototype.
2014-06-21 04:10:15 -07:00
Peace-Maker
cf617a4d20 Add string literal concatenation using ellipses "..." (bug 4261)
Backported the changes CompuPhase did to the compiler to support string
literal concatenation including all fixes in later commits from r30 on.
http://code.google.com/p/pawnscript/source/detail?r=30

Pawn uses ellipses "..." to concatenate so it looks like this:

#define PROJECT_AUTHOR "Greyscale"
#define PROJECT_COPYRIGHT "Copyright (C) 2010  " ... PROJECT_AUTHOR

This would result in PROJECT_COPYRIGHT being defined as
"Copyright (C) 2010  Greyscale"

While i've been at it, that stringizing a macro parameter feature was
ported too.
From the changelog for version 3.3.4026
(http://www.compuphase.com/pawn/pawnhistory.htm):

The macro substition processor now recognizes the "#" character for
"stringizing" a parameter. For example, if you have the definition
#define log(%1) #%1
Then the expression log(test) will result in "test".
Note that concatenation of literal strings requires an ellipsis in pawn
(which is different than C/C++). So to combine the parameter with
literal strings, use a syntax like:
#define log(%1) "logging: " ... #%1 ... "\n"
The stringize operator is only available in the replacement text of a
macro.

Doing
PrintToServer(log(hello));
would print
logging: hello\n
2014-05-27 13:32:59 +02:00
David Anderson
29ff05bd62 Fix compiler bug with multidimensional array variable release (bug 6100, r=fyren).
--HG--
extra : rebase_source : 3f3c366fd8c47268ecd0df5907b68d3c879a5e60
2014-05-09 23:17:14 -04:00
Scott Ehlert
b3d64d1121 Fix freeing non-heap object warning from GCC (r=ann). 2014-02-01 04:16:26 -06:00
David Anderson
f82224eba0 Move versioning to a static library to improve trivial build speed (bug 5997 part 9, r=ds). 2013-12-30 17:51:00 -05:00
David Anderson
58995fc829 Add an spcomp option to print #included files (bug 5997 part 4, r=ds). 2013-12-30 17:50:58 -05:00
Ryan Stecker
b749bbf42b Remove 'state' keyword from compiler (bug 4572, r=dvander). 2013-12-28 08:42:50 -05:00
Asher Baker
29ddb9f4d9 Fix spcomp compilation on OS X 10.9
Summary:
10.9's SDK changed strlcat and strlcmp to macros, which has broken lots of code. As they will always be available from the system (being BSD functions), just use the system ones there.

tempnam has also been deprecated, refactoring spcomp to use it safely is quite a bit of work, and it's not critical, so just hacking around it with mkstemp.

Test Plan: Compiled spcomp.

Reviewers: dvander

Differential Revision: https://phabricator.alliedmods.net/D3

--HG--
extra : rebase_source : 535b88f815727b186fa6a141036599651a60e334
2013-12-02 13:08:27 +00:00
David Anderson
a4b7ad0d42 Fixed memory corruption when parsing natives. (bug 5840, r=fyren) 2013-08-12 01:33:04 +01:00
Kyle Sanderson
29bc273e58 Removed -Wno-parentheses from posix build and fixed warnings (bug 5745, r=psychonic). 2013-07-18 15:50:57 -04:00
Asher Baker
d5ec523584 Support emscripten for compiling spcomp (r=dvander). 2013-04-05 07:03:43 +01:00
Asher Baker
bf76be5dfa Overhauled versioning information (bug 5453, r=dvander). 2012-08-26 01:33:54 +01:00
Nicholas Hastings
4d07acd384 Backed out changeset: 294fded6a0d0 (bug 4902, bug 5068). 2011-10-28 11:23:02 -04:00
Fyren
4d52fe0490 Revert 3336, try fix #2 (bug 4852, r=dvander) 2011-07-09 20:47:43 -07:00
David Anderson
bb48a16466 Fix compiler creating bogus arrays when missing a dimension (bug 4902, r=fyren). 2011-07-06 17:56:40 -04:00
David Anderson
a02ff01d84 Prevent declaring arrays that the compiler is too buggy to handle (bug 4977, r=fyren). 2011-07-06 17:56:03 -04:00
David Anderson
66d27d6ac5 Fix return omission with else-after-return (bug 4852, r=fyren). 2011-07-06 17:55:14 -04:00
Scott Ehlert
939bc00b2b Added detection for clang compiler and fixed various warnings triggered by it (bug 4878, r=dvander). 2011-04-23 21:53:53 -05:00
David Anderson
fdd1a9afef Use hash table for global name lookups (bug 4496, r=fyren). 2010-07-11 17:32:46 -07:00
David Anderson
7054b92a14 Fixed bogus assert about name lengths (bug 4486, r=fyren). 2010-07-02 18:12:31 -07:00
Fyren
e332f4e12b Possible dynamic array dimension fix (bug 4428, r=dvander) 2010-06-19 15:15:23 -07:00
David Anderson
271b52158e Mac build fixes (bug 4392, r=me). 2010-05-11 01:46:55 -07:00
Fyren
c78e89c3c1 Compiler confused |any| tag with |String| on array arguments. 2010-02-08 20:00:06 -08:00
David Anderson
d3f0a14867 Imported support for new build system. 2009-08-30 00:21:42 -07:00
David Anderson
752bd78de5 Fixed compiler asserting when returning a string literal (bug 3836, r=fyren). 2009-05-30 20:03:56 -04:00
David Anderson
c4b17855e5 Fixed compiler erroring when tagging functions for string return (bug 3837, r=fyren). 2009-05-30 20:03:01 -04:00
Matt Woodrow
7710a1fdb0 Merge from 1.2 branch 2009-05-11 11:45:08 +12:00
David Anderson
bf8c57c669 Fixed compiler choosing whether to emit stradjust.pri on dynamic arrays based on uninitialized memory (bug 3810, r=fyren,pred, a12=blocking). 2009-05-09 09:21:14 -04:00
Fyren
f6bb6037f3 Allow spaces in compiler command line options (bug 3729, r=dvander) 2009-03-12 18:37:04 -07:00