monkey

command module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2024 License: MIT Imports: 1 Imported by: 0

README

Monkey

An interpreted language written in Go

Dependencies

  • direnv
  • just (not necessary)
  • Go 1.21+
  • ginkgo (if you want to run local unit tests)
  • golangci-lint (if you want to do local linting)

Conventions

  • Identifiers only consist of alphabet letters or underscore

Components

  • Token set
  • Lexer
  • Abstract Syntax Tree (AST)
  • Pratt parser

TODOs

  • feat: add Unicode support
  • feat: add a return keyword for function
  • feat: add line, column number when getting errors
  • feat: add support for hex notation and octal notation for integers
  • feat: formatting and prettier
  • feat: add support for basic types: boolean, float, struct, string, byte
  • feat: add support for collection types: array, map
  • feat: add support for function anonymous arguments
  • feat: add support for variadic functions
  • feat: add support for anonymous functions
  • feat: add <=, >= operators
  • feat: add logical operators ||, &&
  • feat: add bitwise operators ^, |, &
  • refactor: unary operators, binary operators, ternary operators
  • feat: use Cobra to enable multiple modes when launching the REPL
  • feat: use quit(), exit(), or Ctrl-D to exit
  • ci: fix the release GHA workflow
  • feat: concurrency, Mutex, RWMutex
  • feat: add support for comments

License

MIT License

Documentation

Overview

Copyright © 2024 NAME HERE qzc0512@gmail.com

Directories

Path Synopsis
internal
ast

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL