Commit Graph

249 Commits

Author SHA1 Message Date
PaddiM8
24771b3a5a Changed inverter to instead move expressions to the LHS, like done when equations are solved in maths. Also made it multiply into parenthesis. 2020-06-14 19:23:02 +02:00
PaddiM8
1edec7d16e Added some error checking to the inverter. 2020-06-13 22:18:37 +02:00
PaddiM8
e6778f7ef5 Merge branch 'master' into units 2020-06-13 21:57:27 +02:00
PaddiM8
c50534a248 Publish. 2020-06-13 21:42:14 +02:00
PaddiM8
d042e3577f Made it possible for the inverter to invert expressions with function calls. 2020-06-13 20:06:21 +02:00
PaddiM8
bff785bc1e Created the foundation of an expression inverter. This is used to create a second *inverted* unit declaration, in order to cover both of the units. 2020-06-13 19:01:33 +02:00
PaddiM8
eb20aae16f Added the unit statement (very basic and experimental). 2020-06-13 16:19:32 +02:00
PaddiM8
430841fc5f Trimmed end matches of dots in order to avoid numbers such as 1.. 2020-06-12 21:30:03 +02:00
PaddiM8
2cffe8dbfa Updated crate versions (thought I did this in the previous commit??). 2020-06-12 21:27:01 +02:00
PaddiM8
bbea1e4e82 Merge branch 'master' of https://github.com/PaddiM8/kalk 2020-06-12 21:01:12 +02:00
PaddiM8
db60867a19 Changed kalk crate version. 2020-06-12 21:00:56 +02:00
PaddiM8
52ad501ba3 Updated example code in README. 2020-06-12 21:00:03 +02:00
PaddiM8
6711e22f3e Version update test. 2020-06-12 18:16:54 +02:00
PaddiM8
f2a1ddcc05 Updated .travis.yml. 2020-06-12 16:10:32 +02:00
PaddiM8
0a5130099b Created a workspace Cargo.toml to unify the library and binary. 2020-06-12 14:11:42 +02:00
PaddiM8
fbe72d3f55 Fixed code in documentation in parser.rs 2020-06-12 14:10:10 +02:00
PaddiM8
8b16e3cbd4 Added example image and expanded feature list. 2020-06-12 00:34:50 +02:00
PaddiM8
50ba5f4d18 Added readme to Cargo.toml. 2020-06-12 00:08:14 +02:00
PaddiM8
22c5b0785c Added separate readme for the library. 2020-06-12 00:06:54 +02:00
PaddiM8
122aca4a97 Added separate readme for the library. 2020-06-12 00:06:15 +02:00
PaddiM8
0dc5bf9d30 Changed version number to 0.1.1 2020-06-11 23:53:04 +02:00
PaddiM8
9bf5ac209b Changed 'parsers' category to 'parser-implementations' 2020-06-11 23:52:12 +02:00
PaddiM8
cb1a7e921c Changed Cargo.toml to prepare for publish. 2020-06-11 23:47:03 +02:00
PaddiM8
4f9f8bc63e Extended parser::eval and parser::parse documentation by explaining when None is returned. 2020-06-11 23:45:54 +02:00
PaddiM8
46a27d4129 Added simple documentation for the exposed parts. 2020-06-11 23:09:44 +02:00
PaddiM8
0274721878 Added test_undefined_fn for the interpreter. 2020-06-11 22:14:43 +02:00
PaddiM8
125499065a Added test_fn and test_sum_fn for the interpreter. 2020-06-11 22:10:23 +02:00
PaddiM8
ffd26c1da9 Renamed symbol_table::contains_func to contains_fn. 2020-06-11 21:47:14 +02:00
PaddiM8
4fbb71f423 Made the ast module public. 2020-06-10 14:02:33 +02:00
PaddiM8
3ffd62c572 Renamed parser::parse to parser::eval and created a new parser::parse function that does not evalutate the statements. 2020-06-10 13:55:43 +02:00
PaddiM8
9ab0abf1b5 Added gamma function. 2020-06-09 20:50:05 +02:00
PaddiM8
98fc2bf151 Made the x_1 notation possible. 2020-06-09 14:59:29 +02:00
PaddiM8
995897fc25 Fixed lexer not ignoring whitespace properly. 2020-06-09 10:34:39 +02:00
PaddiM8
165df6d3f3 Changed lexer source to a peekable iterator, resulting in (hopefully) proper UTF-8 support. 2020-06-08 21:51:45 +02:00
PaddiM8
42524eefa3 Somewhat fixed UTF-8 support in the lexer. 2020-06-07 19:48:52 +02:00
PaddiM8
f6b7dce791 Added position data to tokens. 2020-06-06 20:15:32 +02:00
PaddiM8
aeed8049fc Fixed output not displaying small-ish decimal numbers properly. 2020-06-06 17:20:40 +02:00
PaddiM8
d0536d6bd6 Created CalcError enum and centralised error formatting into once place. 2020-06-06 16:28:48 +02:00
PaddiM8
4a02134b22 Added unit tests for unit, var, undefined var, and var decl for the interpreter. 2020-06-06 15:39:34 +02:00
PaddiM8
3fda01e087 Added unit tests for literal, binary, and unary for the interpreter. 2020-06-05 21:57:20 +02:00
PaddiM8
2bacbf5c67 Added unary expression unit test for the parser. 2020-06-05 19:03:16 +02:00
PaddiM8
f1d09ae799 Changed lexer to allow whitespace between number literal. 2020-06-05 17:18:36 +02:00
PaddiM8
e7cbbc45c2 Removed test_case from test_pow(). 2020-06-05 16:20:50 +02:00
PaddiM8
dab1006eb7 Added pow, var_decl, fn_decl, fn_call unit tests for the parser. 2020-06-05 16:18:29 +02:00
PaddiM8
98d4a16195 Cleaned up redundant code and replaced compare_enums() with PartialEq. 2020-06-05 13:47:39 +02:00
PaddiM8
4360f3f4ee Set up foundation for parser unit testing and added test_var() and test_precedence() tests. 2020-06-05 13:36:11 +02:00
PaddiM8
0d33efbf63 Added unit tests for lexer. 2020-06-04 21:53:45 +02:00
PaddiM8
3a8e939ac0 Removed self.advance() code duplication in lexer. 2020-06-04 20:09:43 +02:00
PaddiM8
cbc0b340a1 Renamed to 'kalk'. 2020-06-04 19:43:43 +02:00