fur
7 years agoAllow users to define new zero-argument functions
David Kerkeslager [Wed, 9 Aug 2017 15:34:44 +0000 (11:34 -0400)]
Allow users to define new zero-argument functions

7 years agoLicense under the GPL 3
David Kerkeslager [Wed, 9 Aug 2017 13:00:53 +0000 (09:00 -0400)]
License under the GPL 3

7 years agoGet called functions from the environment
David Kerkeslager [Wed, 9 Aug 2017 12:50:43 +0000 (08:50 -0400)]
Get called functions from the environment

7 years agoStore functions as objects
David Kerkeslager [Wed, 9 Aug 2017 10:55:00 +0000 (06:55 -0400)]
Store functions as objects

7 years agoAdded variable-length args to function calls
David Kerkeslager [Tue, 8 Aug 2017 22:57:17 +0000 (18:57 -0400)]
Added variable-length args to function calls

7 years agoNormalize parenthesized and negated expressions
David Kerkeslager [Tue, 8 Aug 2017 18:07:34 +0000 (14:07 -0400)]
Normalize parenthesized and negated expressions

7 years agoNormalized all infix expression statements
David Kerkeslager [Tue, 8 Aug 2017 17:47:45 +0000 (13:47 -0400)]
Normalized all infix expression statements

7 years agovariable assignment renamed to variable initialization for accuracy
David Kerkeslager [Tue, 8 Aug 2017 16:04:08 +0000 (12:04 -0400)]
variable assignment renamed to variable initialization for accuracy

7 years agoNormalize comparison expressions, even ternary comparison expressions
David Kerkeslager [Tue, 8 Aug 2017 15:56:07 +0000 (11:56 -0400)]
Normalize comparison expressions, even ternary comparison expressions

7 years agoStart playing out the normalization of other infix operations
David Kerkeslager [Tue, 8 Aug 2017 14:55:47 +0000 (10:55 -0400)]
Start playing out the normalization of other infix operations

7 years agoUse order instead of operator to normalize infix expressions
David Kerkeslager [Tue, 8 Aug 2017 14:52:13 +0000 (10:52 -0400)]
Use order instead of operator to normalize infix expressions

7 years agoNormalize infix operators
David Kerkeslager [Tue, 8 Aug 2017 08:03:35 +0000 (04:03 -0400)]
Normalize infix operators

7 years agoNormalize all the arguments to functions
David Kerkeslager [Tue, 8 Aug 2017 07:24:45 +0000 (03:24 -0400)]
Normalize all the arguments to functions

7 years agoMinor refactor
David Kerkeslager [Tue, 8 Aug 2017 07:01:38 +0000 (03:01 -0400)]
Minor refactor

7 years agoAdd a CExpressionStatement to wrap expressions instead of passing them into statement...
David Kerkeslager [Tue, 8 Aug 2017 06:53:25 +0000 (02:53 -0400)]
Add a CExpressionStatement to wrap expressions instead of passing them into statement functions

7 years agoSome minor refactoring and added a (currently trivial) normalization step
David Kerkeslager [Tue, 8 Aug 2017 05:29:14 +0000 (01:29 -0400)]
Some minor refactoring and added a (currently trivial) normalization step

7 years agoBetter names
David Kerkeslager [Tue, 8 Aug 2017 04:53:44 +0000 (00:53 -0400)]
Better names

7 years agoRemoved not-yet-relevant runtime
David Kerkeslager [Tue, 8 Aug 2017 04:03:51 +0000 (00:03 -0400)]
Removed not-yet-relevant runtime

7 years agoRemoved not-yet-relevant string type
David Kerkeslager [Tue, 8 Aug 2017 04:01:35 +0000 (00:01 -0400)]
Removed not-yet-relevant string type

7 years agoSlightly better naming
David Kerkeslager [Tue, 8 Aug 2017 02:08:33 +0000 (22:08 -0400)]
Slightly better naming

7 years agoCombined accumulators into one namedtuple
David Kerkeslager [Tue, 8 Aug 2017 02:02:36 +0000 (22:02 -0400)]
Combined accumulators into one namedtuple

7 years agoAdd newlines to the parsing of statements
David Kerkeslager [Mon, 7 Aug 2017 04:08:09 +0000 (00:08 -0400)]
Add newlines to the parsing of statements

7 years agoAdd boolean operators
David Kerkeslager [Sun, 6 Aug 2017 20:43:21 +0000 (16:43 -0400)]
Add boolean operators

7 years agoAdd support for ternary comparison operators
David Kerkeslager [Sun, 6 Aug 2017 20:18:21 +0000 (16:18 -0400)]
Add support for ternary comparison operators

7 years agoStore all Fur infix operator expressions in the same type
David Kerkeslager [Sun, 6 Aug 2017 19:54:35 +0000 (15:54 -0400)]
Store all Fur infix operator expressions in the same type

7 years agoGet function names for operators in transformation phase rather than generation phase
David Kerkeslager [Sun, 6 Aug 2017 19:43:14 +0000 (15:43 -0400)]
Get function names for operators in transformation phase rather than generation phase

7 years agoUse composition rather than inheritance to differentiate between different operators...
David Kerkeslager [Sun, 6 Aug 2017 19:25:41 +0000 (15:25 -0400)]
Use composition rather than inheritance to differentiate between different operators of the same level in parsing

7 years agoRemoved duplication in left recursive infix operator parsers
David Kerkeslager [Sun, 6 Aug 2017 18:59:10 +0000 (14:59 -0400)]
Removed duplication in left recursive infix operator parsers

7 years agoAdded support for comparison operators
David Kerkeslager [Sun, 6 Aug 2017 18:45:45 +0000 (14:45 -0400)]
Added support for comparison operators

7 years agoSome comments
David Kerkeslager [Sun, 6 Aug 2017 17:24:55 +0000 (13:24 -0400)]
Some comments

7 years agoAdded parenthesized expressions
David Kerkeslager [Sun, 6 Aug 2017 17:21:47 +0000 (13:21 -0400)]
Added parenthesized expressions

7 years agoAdded a boolean type
David Kerkeslager [Sun, 6 Aug 2017 16:51:44 +0000 (12:51 -0400)]
Added a boolean type

7 years agoAdd constant symbol list, which solves all the symbol allocation problems
David Kerkeslager [Sun, 6 Aug 2017 08:02:26 +0000 (04:02 -0400)]
Add constant symbol list, which solves all the symbol allocation problems

7 years agoParse function call names using the symbol expression
David Kerkeslager [Sun, 6 Aug 2017 06:45:13 +0000 (02:45 -0400)]
Parse function call names using the symbol expression

7 years agoAdd the ability to assign to and retrieve variables
David Kerkeslager [Sat, 5 Aug 2017 22:56:57 +0000 (18:56 -0400)]
Add the ability to assign to and retrieve variables

7 years agoAdd a negation operator
David Kerkeslager [Sat, 5 Aug 2017 20:33:35 +0000 (16:33 -0400)]
Add a negation operator

7 years agoA pretty featureful commit:
David Kerkeslager [Sat, 5 Aug 2017 19:37:52 +0000 (15:37 -0400)]
A pretty featureful commit:

* New builtin pow()
* Support for multiple arguments to functions
* Support for the results of function calls being passed to functions

7 years agoAdd an integration test to ensure left recursive parsing of math works
David Kerkeslager [Fri, 4 Aug 2017 23:17:25 +0000 (19:17 -0400)]
Add an integration test to ensure left recursive parsing of math works

7 years agoAdded integration test to ensure that order of operations is correct
David Kerkeslager [Fri, 4 Aug 2017 23:12:43 +0000 (19:12 -0400)]
Added integration test to ensure that order of operations is correct

7 years agoAdd basic math
David Kerkeslager [Fri, 4 Aug 2017 23:01:08 +0000 (19:01 -0400)]
Add basic math

7 years agoHandle multiple statements
David Kerkeslager [Fri, 4 Aug 2017 20:31:02 +0000 (16:31 -0400)]
Handle multiple statements

7 years agoAdded support for integers
David Kerkeslager [Fri, 4 Aug 2017 15:26:32 +0000 (11:26 -0400)]
Added support for integers

7 years agoUse an actual string type
David Kerkeslager [Fri, 4 Aug 2017 14:49:20 +0000 (10:49 -0400)]
Use an actual string type

7 years agoClean up after integration tests
David Kerkeslager [Fri, 4 Aug 2017 10:46:33 +0000 (06:46 -0400)]
Clean up after integration tests

7 years agoAdd a .gitignore
David Kerkeslager [Fri, 4 Aug 2017 10:18:03 +0000 (06:18 -0400)]
Add a .gitignore

7 years agoAdd integration tests
David Kerkeslager [Fri, 4 Aug 2017 10:15:50 +0000 (06:15 -0400)]
Add integration tests

7 years agoAdded a very rudimentary fur-to-c compiler
David Kerkeslager [Thu, 3 Aug 2017 19:26:54 +0000 (15:26 -0400)]
Added a very rudimentary fur-to-c compiler