Commit Graph

306 Commits

Author SHA1 Message Date
mark
9137392326 . 2023-06-04 22:22:46 +02:00
mark
5ce10144e7 fix typo 2023-06-04 22:15:09 +02:00
mark
c9e790dae8 update colors 2023-06-04 22:06:21 +02:00
mark
8c6f8c17f1 update readme, docs, site, and version to 0.2.0. 2023-06-04 21:59:38 +02:00
mark
db0be51fa4 added arrow syntax for forcing output types and added the "any" type (which is basically useless and will likely change in the future) 2023-06-04 21:33:35 +02:00
mark
efe8a177dc changed the error 2023-06-04 20:17:36 +02:00
mark
c7642ef911 there can now be multiple functions with the same name. The most recently declared one will be preferred if multiple would be valid. 2023-06-04 20:07:50 +02:00
mark
c2594ab6dc . 2023-05-27 19:37:01 +02:00
mark
d62a3f5aa8 added dereference syntax to go from &t to t by prefixing any statement with a *. for *x.f(), the * is applied to x, not the whole chain (like & would) 2023-05-27 19:20:28 +02:00
mark
f43ab49408 removed some annoying debug prints 2023-05-27 18:38:33 +02:00
mark
e0f13bdb85 fixed issue https://github.com/Dummi26/mers/issues/1#issue-1728187127 and fixed = vs. := in README. 2023-05-27 18:31:58 +02:00
mark
3b44e5984f added build script for musl libc 2023-05-27 17:56:10 +02:00
mark
68c2b52ad7 bugfix: changing the implementation of get() to respect references broke some builtin functions which did not account for this 2023-05-26 21:55:04 +02:00
mark
82f2f028fa fixed line counts ignoring newlines after a // comment 2023-05-26 21:47:47 +02:00
mark
8848552302 changed true to [true] in match statement to remove [] from return types (although it's still there since println() returns [] - this litterally changes nothing, but it's good style) 2023-05-26 21:29:28 +02:00
mark
8066487006 update intro.md 2023-05-26 21:26:14 +02:00
mark
4356858ab2 made syntax cheat sheet a bit clearer 2023-05-26 20:18:09 +02:00
mark
45f6f30de3 revamped switch and match syntax 2023-05-26 20:02:46 +02:00
mark
be9403d63d added destructuring assignments for tuples (and lists on the left) 2023-05-26 18:46:47 +02:00
mark
3f76e4f549 add a.fn(b) syntax to cheat sheet 2023-05-25 00:25:50 +02:00
mark
bcc88bf088 added 'outdated' message to intro 2023-05-25 00:24:24 +02:00
mark
e766e78e96 updated site + added docs/builtins.md + statements can end with ',' to differentiate '1, -2' from '1 - 2' == '-1'. 2023-05-25 00:22:03 +02:00
mark
46653666f0 updated readme and docs 2023-05-24 23:35:42 +02:00
mark
b4b33b1c82 added := for initialization/declaration 2023-05-24 22:32:54 +02:00
mark
8e16140b0f fixed oversight 2023-05-24 01:00:42 +02:00
mark
c32419508e fixed examples 2023-05-23 23:56:45 +02:00
mark
b652cb57cc chmod -x'd examples and added modify_variable.mers example (parser changed). note: some examples might be broken because of this 2023-05-23 23:37:58 +02:00
mark
9d3a149648 to_runnable treats assignment to a variable as initialization/declaration unless is_ref is true. if the variable doesn't exist yet, it will be created. for custom parser implementations, this means that making all variable assignments ones where is_ref is true will work just fine, but explicit declarations can be done by setting it to false if desired. always leaving it at false will repeatedly shadow the variable, so this isn't recommended although it does work. 2023-05-23 23:30:12 +02:00
mark
1ec7296f50 . 2023-05-23 20:52:48 +02:00
mark
9fd09eff37 fixed order of operations 2023-05-23 20:49:39 +02:00
mark
220d992eb9 moved examples to own directory 2023-05-23 20:26:08 +02:00
mark
22b4ace81b added \r and \0 escape sequences 2023-05-23 20:24:32 +02:00
mark
07a443a60b <, <=, > and >= are ordered to happen before == and != instead of defaulting to left-to-right 2023-05-23 19:12:26 +02:00
mark
14d1995d8b add order of operations to the parser ( . | + - | * / % | == != < <= > >= | = ) 2023-05-23 12:20:36 +02:00
mark
7af9902b6a fixed [[2]].0.0 parsing 0.0 as a float, removed get_ref() and made get() return a reference to the inner value if called on a reference to a collection (&[int ...].get(0) returns []/[&int]). 2023-05-23 12:01:27 +02:00
mark
56b457e1b3 add missing file 2023-05-19 21:28:57 +02:00
mark
b5924b5da1 -f+c will print the parsed script with colored highlighting 2023-05-19 21:25:05 +02:00
mark
79797e6718 size/welcome.mers no longer has the executable bit set. 2023-05-18 02:34:01 +02:00
mark
f2f5af94a7 . 2023-05-18 02:31:04 +02:00
mark
79a9d17ba9 updated example for github.io site 2023-05-18 02:12:21 +02:00
Mark
ac3221471f
Create intro.md
before we can add advanced examples, we need type inference: just because I declare a variable as `[]` doesn't mean I'll never write a value to it.
2023-05-18 02:06:45 +02:00
Mark
8bfe5acd06
Update README.md
simplify readme
2023-05-18 01:07:15 +02:00
mark
ac8d3befb7 temporarily made cloning actually clone, giving up on CopyOnWrite for now because I kept finding tiny bugs. This might harm performance, but overall performance was bad and will still be bad so who even cares, at least everything kindof works now. 2023-05-18 00:08:28 +02:00
mark
aff55fdc9e changed VData system again, renamed src/script to src/lang and added src/c.mers, which is an example something that currently does not work properly due to the VData implementation (and serves as a reminder to fix the issue) 2023-05-14 00:11:36 +02:00
mark
f8102c8fe6 (maybe?) fixed inner mutability on immutable (shared) values 2023-05-12 15:32:56 +02:00
mark
c501a6e558 fixed bug with function args and custom types 2023-05-12 15:03:20 +02:00
mark
f76ff55401 removed type_syntax.mers test because type force syntax will change (and has been removed for now).
i plan to move it to the statement itself rather than the assignment
2023-05-12 01:02:42 +02:00
mark
e53fc98f15 amogus.mers wont fail without fish anymore 2023-05-12 00:59:32 +02:00
mark
bba48b311f changed assignment parser from var = statement to statement = statement
left side of assignments can now be various different things instead of just variables. any statement that returns a reference can be used to assign to the value behind that reference. variables are automatically referenced, so the '&' can be omitted. if the variable contains a reference and that reference should be used, dereference it with *varname instead of just varname.
2023-05-12 00:44:47 +02:00
mark
6f31abd5cc changed VData implementation. It will now always (exception: references) behave like a clone BUT it will avoid cloning whenever possible using Copy-on-Write-style logic. 2023-05-11 14:49:49 +02:00