This language was built following the book Writing an Interpreter in Go by Thorsten Ball.
go install servo
run the command
run the command
I have no official image up yet. Build your own image from the Dockerfile in this repository.
None made so far
Comments using # Single quotes for strings String infix operators Integer/Boolean infix operators Fix comment parsing so quotes and special characters work Fix string parsing to include the single quote Fix string parsing to escape the special characters like \n \t etc. Add import keyword to import specific identifier objects from a file Get null working Bitwise operators >>, <<, |, &, &^ Automatic semicolon insertion Increment/Decremnt by operators += , -= , *= , = Power operator ^ Implement floats Add simple classes with fields and methods and inheritance Rename structs/interfaces/functions to their proper names (Expression vs Statement etc.) so everything is consistent Add instanceof operator for classes, e.g.
fooInstance instanceof FooClass
- Implement bytes
- Like strings they can be concatontated with the
b'h' + b'i' = b'hi'
- Both a single byte and a byte buffer, e.g.
b'hi' = [b'h', b'i']
- Rewrite lexer/parser to use runes
- Multiline Comments /* */
- String escaping e.g.
- Hex digits e.g.
- Wrapper for Go's HTTP functions
- Routing string parser
- Route function
- Route middleware
- Static files
- Documentation and examples
- Dot notation for hashes
- Add line and column location to tokens (for better debugging)
- Add for/while loops
- Add try/catch
import './file.svo' as filesyntax to import
import func from './example.svo' as functionsyntax to import
- Change import so it builds the AST during the parsing stage rather than evaluation
- Change array index expression to accept colons like
arr[1:3]for a slice of the array
- Add a standard library that can be imported into any file.
- Standard lib files can be imported by itself (aka
import map from 'Array';) and without extension
- Any other files have to be a relative path or absolute path to the file to import (aka
import func from './module.svo';) and must have the file extension