Minimalist Python-like language interpreter in OCaml.
Try the interpreter online or use the editor (these rely on js_of_ocaml).
This is a work in progress, most of the supported features are only partially implemented.
- Python values:
- Boolean.
- Integer (represented with arbitrary precision).
- Float.
- String.
- List/Tuple.
- Function definitions (with keyword arguments, ...), nested function definition.
- Variable assignments with tuple/list destructuring and assignements to a list element.
- Augmented assignments
+=,-=, etc. - Control flow:
- Loops:
whileandforloops, with support forbreakandcontinue. - If conditionals with
elifandelse.
- Loops:
- Expressions:
- Unary and binary operators, comparisons.
- Ternary if operator.
- Attributes, e.g.
x.foo. - Subscripts, e.g.
x[foo]. - Lambdas,
lambda. - List comprehensions (only for lists, no support for dict/set).
- Built-ins
print,range. - Dictionaries.
- Delete operator,
del. - REPL example, javascript version with js-of-ocaml.
- Starred expressions.
- Basic object system.
- Exceptions, try/with blocks,
raise. - With blocks.
- Inheritance.
- Sets.
- Slices, e.g.
x[12:15]. - Generators,
yield. - Module system,
import. - Type annotations.
- Bytecode compilation/interpreter.