- Aug 29, 2019
-
-
Matthieu Gautier authored
Python Library See merge request mgautierfr/lisa!4
-
Matthieu Gautier authored
Because this is what is installed in `rust:latest` image.
-
- Aug 28, 2019
-
-
Matthieu Gautier authored
-
Matthieu Gautier authored
-
Matthieu Gautier authored
We must return runtimeError instead of panic or return default things. We also need to convert this runtimeError to a python runtimeError.
-
Matthieu Gautier authored
Do not use the python's SyntaxError as it is not a Python syntax error but a lisa one.
-
Matthieu Gautier authored
-
Matthieu Gautier authored
There is still a lot of work to do to correctly handle error. (Remove all unwrap and unreachable)
-
- Jul 11, 2019
-
-
Matthieu Gautier authored
Python See merge request mgautierfr/lisa!3
-
Matthieu Gautier authored
-
Matthieu Gautier authored
-
Matthieu Gautier authored
It is a first step to have useful program.
-
- Jul 10, 2019
-
-
Matthieu Gautier authored
Until now, parsing errors were discarded with the unwrap. Now, we are not discarding it. We are using the filter_map function to correctly parse the line and return the error if needed and skip the empty lines. The `Result` can be constructed from a iterator so we are propagating the error when we '?'using the instructions.
-
Matthieu Gautier authored
It is technically possible to parse a source code and execute it. But without being able to pass a custom Library or get the resulting state, it is pretty useless.
-
Matthieu Gautier authored
-
Matthieu Gautier authored
The `Program` struct is only a container. It does nothing but having reference to a `Library` and it doesn't help with python wrapping.
-
- Jun 06, 2019
-
-
Matthieu Gautier authored
-
- Jun 05, 2019
-
-
Matthieu Gautier authored
-
- May 31, 2019
-
-
Matthieu Gautier authored
-
- May 11, 2019
-
-
Matthieu Gautier authored
-
Matthieu Gautier authored
They somehow are identical. It is just that `If` takes a boolean test and run the child branch once where the `Loop` takes a integer and run the child branch several times.
-
- May 10, 2019
-
-
Matthieu Gautier authored
And move Instruction in the instruction module now that it doesn't do anything.
-
Matthieu Gautier authored
There is no more a notion of a block (it is a separated instruction list).
-
Matthieu Gautier authored
-
Matthieu Gautier authored
The list of instruction becomes a linked list. It add a bit more work on the parsing part to create that list, but it simplify a lot the interpreter.
-
Matthieu Gautier authored
The `Instruction` is no more a trait. It is a struct containing an enum for the specific part. This allow the instruction to have common fields as `line` and `indent`. The code specific to the execution of a instruction is moved to the interpreter.
-
- May 07, 2019
-
-
Matthieu Gautier authored
-
Matthieu Gautier authored
This is not really an instruction and it simplify everything.
-
Matthieu Gautier authored
A program is a list of instruction, not a list of line. We simplify the code by storing the right thing.
-
- May 06, 2019
-
-
Matthieu Gautier authored
-
- Apr 25, 2019
-
-
Matthieu Gautier authored
Add small binary See merge request mgautierfr/lisa!2
-
Matthieu Gautier authored
The binary is a small sample binary to show how to use the lisa library or how to write lisa program.
-
Matthieu Gautier authored
-
Matthieu Gautier authored
-
Matthieu Gautier authored
Add a simple ci See merge request mgautierfr/lisa!1
-
Matthieu Gautier authored
-
Matthieu Gautier authored
-
- Apr 24, 2019
-
-
Matthieu Gautier authored
This way, we avoid the explicit duplicate methods.
-
Matthieu Gautier authored
-
Matthieu Gautier authored
A `State` represent the state of a program (variables...). The cl represent where we are in the program.
-