Agora is a dynamically typed, garbage collected, embeddable programming language.
It is built in the Go programming language, and is meant to provide a syntactically similar, loose, dynamic companion to the statically typed, machine compiled Go language - somewhat like Lua is to C.
go get github.com/PuerkitoBio/agora/...
This source code documentation is meant for explaining the internals of the agora programming language: its runtime and compiler, its command-line tools and its native Go API provided for embedding agora within a Go program.
Other documentation exist for the agora language itself, the stdlib, installation, and such.
See https://github.com/PuerkitoBio/agora#readme for more details.
|bytecode||Package bytecode provides types and functions to encode to and decode from the binary bytecode representation of compiled agora code.|
|bytecode/testing||Package testing is for internal use only, it groups useful utility functions and variables to help in testing bytecode results.|
|compiler||Package compiler provides the agora source code compiler.|
|compiler/emitter||Package emitter generates the bytecode instructions by traversing the abstract syntax tree generated by the parser.|
|compiler/parser||Package parser provides the agora source code parser.|
|compiler/scanner||Package scanner implements a scanner for agora source text.|
|compiler/token||Package token defines constants representing the lexical tokens of the agora programming language and basic operations on tokens (printing, predicates).|
|runtime||Package runtime defines the core of the agora language - the supported values, their behaviour, the execution context, modules, and VM.|
|runtime/stdlib||Package stdlib provides the standard library for agora.|