Commit Graph

268 Commits

Author SHA1 Message Date
greg c5cb223168 Super-minimal type-checking with just ints 2017-10-01 17:50:26 -07:00
greg d16a0c9380 Evaluation of literals 2017-10-01 12:55:28 -07:00
greg daf9878020 Kill some unused code 2017-10-01 00:50:13 -07:00
greg f825c87397 Type checking beginnings 2017-10-01 00:48:08 -07:00
greg 8d2a65b44e Starting eval framework 2017-09-30 23:30:02 -07:00
greg 6b9fee1aed Made handling parse errors nicer 2017-09-30 14:41:37 -07:00
greg d05f173dd3 Using delmited! macro for more things 2017-09-30 14:11:38 -07:00
greg e88a0f59b5 Made macro less complicatd 2017-09-30 13:46:50 -07:00
greg 90cf7db609 Use the delimiter macro in a few places
Made it capable of handling the strict <item> <delim> behavior necessary
for non-blocks, as well as teh loose behavior necessary for blocks,
added a test for a parse error.
2017-09-30 13:04:56 -07:00
greg 1ae9dbcba7 Tests for tuple type annotations 2017-09-30 01:14:49 -07:00
greg 9214f36c04 Tests for type annotations 2017-09-29 19:10:37 -07:00
greg 98169bd352 update test for new type anno format 2017-09-29 14:53:16 -07:00
greg d60cf99ab5 Parsing sorta works
Need to handle double >> bug
2017-09-29 14:10:49 -07:00
greg bb93d29beb Some type anno parsing work 2017-09-28 23:55:10 -07:00
greg c20f93e18c A test for type annotation 2017-09-28 00:45:36 -07:00
greg f48adbd9bf Made the tests work again 2017-09-28 00:06:08 -07:00
greg 9ad506fc78 Handling type annotations in the AST 2017-09-27 22:27:50 -07:00
greg 4c81c36d67 Parse type annotations
Not using them yet
2017-09-26 22:10:13 -07:00
greg 230f2dd7ff More match expr work 2017-09-21 16:00:14 -07:00
greg 8b83d982c0 More work on match expression 2017-09-20 21:05:08 -07:00
greg 6bff7aac0d Match expressions
not done yet
2017-09-20 20:30:30 -07:00
greg e3b236a15d If expressions 2017-09-19 22:11:04 -07:00
greg 68bbd62ab6 Make token debug nicer 2017-09-19 22:11:04 -07:00
greg a8b77848b4 kill old EBNF in comments 2017-09-19 22:11:04 -07:00
greg 839731f2d1 Make op! macro part of binexp!/prefexp! macros
For tests
2017-09-19 22:11:04 -07:00
greg f51e1a3c47 make Operation a tuple-style struct 2017-09-19 22:11:04 -07:00
greg fc350cd03e Prefix operators 2017-09-19 22:11:04 -07:00
greg 8fe7c85b00 return keyword + idea for how to use it in for 2017-09-19 22:11:04 -07:00
greg b920fae93b variable bindings 2017-09-19 22:11:04 -07:00
greg 1981b74d89 Nicen up precedence-testing 2017-09-19 22:11:04 -07:00
greg 077ab8ddb8 Add trace to binexp parser 2017-09-19 22:11:04 -07:00
greg 9775bfc342 bool literals 2017-09-19 22:11:04 -07:00
greg 505d23a327 Parse . operator 2017-09-19 22:11:04 -07:00
greg 81c4566c2b Improved operator parsing 2017-09-19 22:11:04 -07:00
greg 8be757beca Some changes to EBNF grammar 2017-09-19 22:11:04 -07:00
greg 20c74953b5 Get rid of unimplemented! and panic! 2017-09-19 22:11:04 -07:00
greg d5c3227966 Parse string literals 2017-09-19 22:11:04 -07:00
greg 18c761a5b5 Wrap all parse methods in record-printing macro 2017-09-19 22:11:04 -07:00
greg 89cf101362 Refactoring prace trace infra 2017-09-19 22:11:04 -07:00
greg 66d10604ba make parse_method! macro more naturalistic 2017-09-19 22:11:04 -07:00
greg 565461e1db Show more useful information in parse tracing 2017-09-19 22:11:04 -07:00
greg 5ecd28d057 Print parse record in REPL as TraceArtifact 2017-09-19 22:11:04 -07:00
greg 6c5dbac406 Starting to add logic to track recursive descent calls 2017-09-19 22:11:04 -07:00
greg 5dd1cd79ff Parsing call expressions 2017-09-19 22:11:03 -07:00
greg dfc89e5060 Index expressions
This only partially works
2017-09-19 22:11:03 -07:00
greg 5871bf68de test for function parsing 2017-09-19 22:11:03 -07:00
greg 34b569eb5f Starting to parse formal params 2017-09-19 22:11:03 -07:00
greg 5810fb7961 type alias test 2017-09-19 22:11:03 -07:00
greg 1a3076a949 Change syntax of rc macro 2017-09-19 22:11:03 -07:00
greg 1d9e5edfba Rudimentary type stuff 2017-09-19 22:11:03 -07:00
greg 555d2a7ba5 Identifier tests 2017-09-19 22:11:03 -07:00
greg 291fb61c8d Parse identifiers
Some more complicted types of expression
2017-09-19 22:11:03 -07:00
greg 685b579fdd paren exprs 2017-09-19 22:11:03 -07:00
greg f72e77cbb6 Remove printlns 2017-09-19 22:11:03 -07:00
greg 4b5afef17e Added one more test 2017-09-19 22:11:03 -07:00
greg 5889998126 Precedence parsing
Using the Pratt parser algorithm (probably with some bugs as of yet).
Need to clean up the code some as well
2017-09-19 22:11:03 -07:00
greg c19946bb6d Additional test 2017-09-19 22:11:03 -07:00
greg d1301b30e6 Added infra for operators 2017-09-19 22:11:03 -07:00
greg f8287e42ce Binary literal test case 2017-09-19 22:11:03 -07:00
greg bd6bf2f4bb Parse binary literal 2017-09-19 22:11:03 -07:00
greg a6b336d84c type anno EBNF 2017-09-19 22:11:03 -07:00
greg deab74b992 Kill extraneous lines 2017-09-19 22:11:03 -07:00
greg 0755d42112 More parsing work 2017-09-19 22:11:03 -07:00
greg 117e0e38a8 Starting types 2017-09-19 22:11:03 -07:00
greg c52fd4c73d Parse test 2017-09-19 22:11:03 -07:00
greg cac3ea86cf Import TokenType and Kw everywhere 2017-09-19 22:11:03 -07:00
greg 92ece39d5e Only IntLiteral
Signed/unsigned is via - operator
2017-09-19 22:11:03 -07:00
greg 14c09bb40c Float literals too 2017-09-19 22:11:03 -07:00
greg 0dabbc700b Concise-ify code 2017-09-19 22:11:03 -07:00
greg 741e5f7f9b Parsing basic numbers! 2017-09-19 22:11:03 -07:00
greg cfefceabf9 More infra
Don't want EOF after all
2017-09-19 22:11:02 -07:00
greg ea08f8cab8 More parse infra 2017-09-19 22:11:02 -07:00
greg 7d1c07c481 Parsing infrastructure 2017-09-19 22:11:02 -07:00
greg 7831cb8d8a Start parsing 2017-09-19 22:11:02 -07:00
greg 737dad6438 Added some tests
And commented out old tests for Maaru that don't compile
2017-09-19 22:11:02 -07:00
greg 74f8c16599 Fix bug with _ 2017-09-19 22:11:02 -07:00
greg a82f24a158 Kill import 2017-09-19 22:11:02 -07:00
greg 6459ad28e8 A few more keywords 2017-09-19 22:11:02 -07:00
greg 57d4222746 Operators, keywords largely working 2017-09-19 22:11:02 -07:00
greg 88d1896281 Identifiers and keywords 2017-09-19 22:11:02 -07:00
greg 7fe0a6589e Unclosed string 2017-09-19 22:11:02 -07:00
greg ac5bdd7bcb Change some func signatures around tokenizing and errors 2017-09-19 22:11:02 -07:00
greg 8bf5f40a2a Some string tokenizing - not done 2017-09-19 22:11:02 -07:00
greg 7e505dd88e Stuff 2017-09-19 22:11:02 -07:00
greg f15427e5d9 A bunch of token stuff 2017-09-19 22:11:02 -07:00
greg a53135a897 More elaborate tokens 2017-09-19 22:11:02 -07:00
greg 8dc8d15437 Cleaned up Repl struct 2017-09-19 22:11:02 -07:00
greg b5a6c5903e Switch to contentful output types 2017-09-19 22:11:02 -07:00
greg c97e58c2aa Cleared out all remaining linter warnings 2017-09-19 22:11:02 -07:00
greg fb009497a4 Still more cleanup 2017-09-19 22:11:02 -07:00
greg 4b13fef734 More cleanup 2017-09-19 22:11:02 -07:00
greg 192a7e611f Parsing BNF 2017-09-19 22:11:01 -07:00
greg d3febb201b More parsing 2017-09-19 22:11:01 -07:00
greg f9fe81993f Beginning parsing code 2017-09-19 22:11:01 -07:00
greg ff01d4b798 Initial Schala (for real) commit 2017-09-19 22:11:01 -07:00
greg dd22ca0291 Grand renaming of things 2017-09-19 22:11:01 -07:00
greg 5d15d60ab6 Structs implemented
albeit very inefficiently
2017-09-19 22:11:01 -07:00
greg e0f5f01e69 Kill error messges for not using Result 2017-09-19 22:11:01 -07:00
greg 424998c128 Lists work! 2017-09-19 22:11:01 -07:00
greg b93625819c Update ReducedValue to handle lists 2017-09-19 22:11:01 -07:00
greg f90bfb88ca Fix display of list 2017-09-19 22:11:01 -07:00
greg 850b77541b Display of lists sorta works 2017-09-19 22:11:01 -07:00
greg dbf5886aad List evaluation technically working 2017-09-19 22:11:01 -07:00
greg dd93adf5b7 try!() -> ? 2017-09-19 22:11:01 -07:00
greg d8df98ba01 Beginnings of list literals 2017-09-19 22:11:01 -07:00
greg 4da771036a Part of evaluation path for indexing done 2017-09-19 22:11:01 -07:00
greg 3911c45dde Introduced index notation 2017-09-19 22:11:01 -07:00
greg f3c3d4595e Immediate lambda call 2017-09-19 22:11:01 -07:00
greg 34dba9cc4d Schala - fix bug with comments 2017-09-19 22:11:01 -07:00
greg 039022bfc5 Get rid of println 2017-09-19 22:11:01 -07:00
greg 8fd5fb5a0b Added language name functionality 2017-09-19 22:11:00 -07:00
greg 6dec35d460 Think I've nearly gotten it traitified correctly... 2017-09-19 22:11:00 -07:00
greg 421a9a7e9b Abstract evaluation into EvaluationMachine trait 2017-09-19 22:11:00 -07:00
greg f37ab80163 Fix tests 2017-09-19 22:11:00 -07:00
greg 178434171e Cleaning up some types 2017-09-19 22:11:00 -07:00
greg fd4610e175 Make newtype for LLVM code strings 2017-09-19 22:11:00 -07:00
greg 5103f03fa5 Forgot to add mod.rs file 2017-09-19 22:11:00 -07:00
greg 1a4bf24ab1 Move schala-specific stuff into its own module 2017-09-19 22:11:00 -07:00