aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/com/jantuomi
Commit message (Collapse)AuthorAgeFilesLines
* Include calls now always return an object containing the library scopemasterjantuomi2016-08-3020-50/+92
| | | | Resolves #15
* Fix bug where scopes would not get popped from the stack at the end of a ↵jantuomi2016-08-292-1/+4
| | | | function call
* Fix bug where 'cast' module was not included correctlyjantuomi2016-08-292-4/+7
|
* Fix call token regexjantuomi2016-08-291-1/+1
|
* Implement 'new' keyword for object instantiationjantuomi2016-08-298-2/+82
| | | | Add NotAPrototypeError
* Rename ObjectDefinition to ObjectPrototypejantuomi2016-08-295-11/+11
|
* Implement object prototype datatypejantuomi2016-08-293-5/+57
| | | | | | Object Prototypes are not unlike class declarations in other languages, except for a couple of key points: - Object Prototypes are first class citizens - As of now, Object Prototypes always require a nullary constructor
* Implement object definition with 'obj' keywordjantuomi2016-08-2916-33/+171
|
* Add MissingTerminatorTokenErrorjantuomi2016-08-083-7/+33
| | | | If the token stack doesn't have a terminator token for all variable argument tokens, throw an error.
* Handle input and output differently on Windows and other systemsJan Tuomi2016-08-061-12/+72
| | | | | Create IOHandler interface Create classes WindowsIOHandler and StandardIOHandler that implement IOHandler
* Fix bug where calling methods of objects would not actually call the functionJan Tuomi2016-08-064-23/+11
|
* Create 'io' moduleJan Tuomi2016-08-063-9/+29
| | | | | Move 'input' and 'output' builtins to said module Rename wrongly named power builtin to 'pow'
* 'output' function should use 'toString' from the Datatype classJan Tuomi2016-08-061-1/+1
|
* Major overhaul of function type checking, allow static and dynamic as well ↵jantuomi2016-08-0524-80/+344
| | | | | | as variadic argument lists Split 'Function' class into abstract superclass 'Function' and child classes 'UserDefinedFunction' and 'BuiltinFunction'
* Make 'output' function utilize IO printLinejantuomi2016-08-054-4/+14
|
* Fix bug where function parameters were evaluated twicejantuomi2016-08-051-2/+2
|
* Create IO utility class for input and output wrappersjantuomi2016-08-043-16/+49
|
* Rename 'func' to '@', 'as' to '|' and 'end' to '!' to make syntax more tersejantuomi2016-08-048-21/+16
|
* Store functions as symbols in the scopejantuomi2016-08-0423-178/+64
| | | | Functions no longer know their own name because they are essentially lambdas assigned to variables
* Remove if keyword and create if builtin functionjantuomi2016-08-046-61/+48
|
* Add ObjectDatatype and implement object member lookupjantuomi2016-08-048-13/+134
| | | | | Various error fixes Resolves #14
* Add ObjectMember operator (:) token and nodejantuomi2016-08-035-1/+46
| | | | References #14
* Add ObjectMember token typejantuomi2016-08-032-21/+3
| | | | Code cleanup in Token and Tokenizer
* Fix regex for scandinavian charactersjantuomi2016-08-031-2/+2
|
* Add support for scandinavian characters in symbolsjantuomi2016-08-031-2/+2
| | | | Resolves #12
* Insert line information to errors thrown during function callsjantuomi2016-08-032-2/+8
|
* Throw FileNotFoundError from include function if module can't be foundjantuomi2016-08-032-3/+4
|
* Add FileNotFoundError, OutOfBoundsError, RecursiveIncludeErrorjantuomi2016-08-038-13/+75
| | | | Change several GeneralError throws to utilize new error types
* Change TypeError messagejantuomi2016-08-031-1/+1
|
* Change "Malformed syntax tree" error to SyntaxErrorjantuomi2016-08-033-3/+3
| | | | | Remove dead code Change SyntaxError message
* Cleanup TunkkiError classjantuomi2016-08-031-9/+0
|
* Refactor TunkkiError to subclassesJan Tuomi2016-08-0273-203/+420
| | | | | Make TunkkiError abstract and create a subclass for all error types Change all TunkkiError throws to throw subclasses instead
* Add division by zero errorJan Tuomi2016-08-022-2/+12
|
* Extend 'include' to also use builtin modulesjantuomi2016-08-028-56/+155
| | | | | | Add math builtin module Add power builtin function Fix IncludeError text to mention modules
* Fix error in DoubleDatatype caused by floating point problemsjantuomi2016-08-014-8/+17
|
* Implement 'as_bool' builtinjantuomi2016-08-015-51/+100
|
* Implement 'contains' for string datatypejantuomi2016-08-011-2/+22
|
* Move tokenizer package under parser packagejantuomi2016-08-0157-90/+75
|
* Read project version from file in root directoryjantuomi2016-08-012-1/+27
| | | | The version file is called 'VERSION' and contains only the version info in one line.
* Move builtin functions to 'global' packagejantuomi2016-08-0112-15/+12
|
* Rename debug mode to AST mode for clarityjantuomi2016-08-012-9/+6
|
* Add multiline input to REPLjantuomi2016-08-013-12/+42
| | | | | | | | Fix bug where REPL input is echoed back Fix bug where an exclamation point would cause a JLine event exception Input can now be continued on the next line with a '\' character at the end of the line. The character will be disregarded as whitespace in the parser. Resolves #13
* Implement enhanced REPL, relates to #13Jan Tuomi2016-07-314-61/+145
| | | | Add command history and welcome message
* Add 'eq' builtin and comparison functionality for datatypesJan Tuomi2016-07-3112-1/+128
|
* Fix bug where 'dset' was not recognized as a keywordJan Tuomi2016-07-303-4/+5
|
* Add slight delay to repl to fix exception outputJan Tuomi2016-07-301-1/+2
|
* Function references are now correctly first class citizensJan Tuomi2016-07-309-20/+131
| | | | Resolves #7
* Add nada datatype, resolves #11jantuomi2016-07-294-3/+55
|
* Rename DataContainer to Datatypejantuomi2016-07-2942-427/+422
|
* Add missing files to previous commitjantuomi2016-07-282-0/+35
|