31 Commits

Author SHA1 Message Date
cron
28c175c6b3 turtle: improve state execution and interaction 2020-11-07 19:26:43 +00:00
cron
05833e9f24 turtle/tlang: fix binary operators being backwards 2020-11-06 23:39:49 +00:00
cron
4c2a89bba9 turtle/tlang: add else to if, fix end of scope error 2020-11-06 17:06:32 +00:00
cron
f71a8dbf0e turtle/tlang: add boolean conversion API, improve automatic conversion 2020-11-06 16:38:52 +00:00
cron
3a210fef57 turtle/tlang: fix nextpop bug, improve value conversion 2020-11-06 16:20:04 +00:00
cron
0df741ab4c turtle: improve coordinate handling and task scheduling 2020-11-06 16:18:56 +00:00
cron
cd1805ce25 turtle/tlang: add args builtin
Also fixes some bugs regarding exiting code blocks.
2020-11-06 00:54:06 +00:00
cron
cd0eb1b192 turtle/tlang: add WIP API
Some things aren't _raw, other things are, its WIP
2020-11-06 00:13:21 +00:00
cron
ba9a07d262 turtle: add public domain dedications 2020-11-05 23:20:28 +00:00
cron
455f20fa06 turtle: add .tlang, fix print log 2020-11-05 23:17:41 +00:00
cron
b09c6024ef turtle/tlang: log prints 2020-11-05 19:55:55 +00:00
cron
bfba03a87b turtle: fix tlang integration 2020-11-05 19:53:35 +00:00
cron
9ca4c0fc79 turtle: remove unneeded code
Other functions need to be replaced with tlang cogs.
2020-11-05 19:18:08 +00:00
cron
4c94ff4390 turtle: add tlang scheduler 2020-11-05 19:13:57 +00:00
cron
91ef7215e7 turtle/tlang: make more modular 2020-11-05 18:58:25 +00:00
cron
f6115ade95 turtle/tlang: remove unecessary dofile replacement 2020-11-05 18:49:45 +00:00
cron
9d6d791073 turtle/tlang: add repeat
{code} count <var> repeat
2020-11-05 06:49:55 +00:00
cron
5dd14439ac turtle/tlang: allow unary operators to assign to quotes, add more operators
`var -- is now possible
Added + - / % !
2020-11-05 03:15:12 +00:00
cron
d3b2d308da turtle/tlang: make = assign to nearest defined
If identifier has never been assigned, assign it in current scope
If it has been assigned, reassign it at that scope to value
Needs a global assignment and local assignment, maybe rename = to set or something
2020-11-05 02:52:48 +00:00
cron
9fd49d876b turtle/tlang: force beginning and end of string literals to match 2020-11-04 19:20:02 +00:00
cron
752a72a478 turtle/tlang: add while 2020-11-04 19:19:36 +00:00
cron
d324d9ed10 turtle/tlang: make access() search for newest locals first, globals last 2020-11-04 06:46:43 +00:00
cron
9f8aa05b50 turtle/tlang: fix copying error with = builtin 2020-11-04 03:03:53 +00:00
cron
c65e72116e turtle/tlang: add forever and some other builtins
With forever, break, and (basic) if for and while can be made.
2020-11-04 02:57:48 +00:00
cron
03389880af turtle/tlang: add comments, fix strings
Strings support '' syntax now. They can also be started with ' and ended with " or vice versa, and there is no way to put a literal ' in yet.
2020-11-04 02:55:08 +00:00
cron
957d425609 turtle/tlang: add run builtin
This changes how code is executed a bit, code from the stack is popped to an execution stack before.
This makes global executed functions and anonymous ones identical.
Not super well tested as always :]
2020-11-03 07:06:59 +00:00
cron
0a3d331680 turtle/tlang: fix lexer whitespace issues
This fixes the final whitespace issue as well as numbers requiring a final whitespace.
Maps don't need surrounding whitespace anymore.
2020-11-03 07:05:27 +00:00
cron
d47ce9b310 turtle: add working tlang
Not very well tested, needs a better public API, not integrated with Minetest, ...
This is WAY bigger than a commit should be.
The next stages will be:
- unit tests
- API (allows it to be more than just a language for this project)
- integration with Minetest
2020-11-01 02:55:54 +00:00
cron
0f420b14ac turtle: some weird ideas before the turtle language is added 2020-10-30 23:00:40 +00:00
cron
2d4aa9c9c1 turtle: add preliminary scheduling system 2020-10-15 21:28:14 +00:00
cron
68401ec791 turtle: initial turtle mod
Don't use turtle.quarry or the mining features, they are experimental
2020-10-14 13:00:32 +00:00