Skip to content
A small toy programming language.
Go Shell
Branch: develop
Clone or download
imgbot and kscarlett [ImgBot] Optimize images (#19)
/.github/hussar.png -- 15.37kb -> 7.67kb (50.1%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Approving without review because it's a non-code change by a bot.
Latest commit b2d62dc Jul 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github [ImgBot] Optimize images (#19) Jul 29, 2019
ast chore: Match new language branding. Jul 18, 2018
cmd style(tools): Remove unneeded comment Aug 30, 2018
evaluator chore: Match new language branding. Jul 18, 2018
examples
lexer chore: Match new language branding. Jul 18, 2018
object fix: Fix a typo in the imports Jul 18, 2018
parser chore: Match new language branding. Jul 18, 2018
repl chore: Match new language branding. Jul 18, 2018
token Arrays and (really hacky) exit codes Jan 4, 2018
.gitignore chore: Match new language branding. Jul 18, 2018
.travis.yml ci(travis): Update Go versions for build Aug 30, 2018
LICENSE Create LICENSE Sep 25, 2017
README.md chore(readme): Add better structure and logo to README Jul 22, 2018
deploy.sh ci(travis): Disable automatic deployment temporarily Aug 30, 2018
main.go feat(tools): Improve main tools Aug 30, 2018

README.md


Hussar Logo
Hussar

A small programming language (very much under development).

Build Status License

Getting StartedUsageContributingPlanned FeaturesVersioningLicense

What's this?

This is my implementation of the Monkey interpreter in Go, based on Thorsten Ball's Writing an Interpreter in Go with my own changes, extensions and improvements. There are a lot of big changes planned, so this will probably divert a lot from the original project.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development, as well as normal use of the Hussar tools.

Prerequisites

To install Hussar for development, you need Go on your local machine. For instructions on how to install Go for your OS, follow the guide on their website.

Installing

The simplest method to download this project for development is with go get. Simply run go get github.com/hussar-lang/hussar in your terminal of choice, and the project will be downloaded to your Go path.

An alternative method is to clone the project from this repository directly. You can do this by running git clone git@github.com:hussar-lang/hussar. For the Go imports to work correctly without change, you will need to place the downloaded project in $GOPATH/src/github.com/hussar-lang/hussar. Once you're inside the project directory, you may have to run go get ./... to fetch any dependencies.

Usage

You can run scripts with the run subcommand, while passing in the script in question.

hussar run file.hss

Another option is to simply call the Hussar command without any subcommands, which will start the interactive mode (or REPL) like so:

hussar

Once in the interactive mode, you can run code and get the result returned. You can exit this mode by calling exit(0) or by pressing control-c in your terminal.

Contributing

Please read CONTRIBUTING.md for details on how to contribute to this project and our code of conduct.

Planned

  • Add basic recursion.
  • Write documentation.
  • Refactor existing code for better organisation.
  • Increase code coverage in critical areas.
  • (LLVM) compilation.
  • More types.
  • Built in libraries e.g. string handling, filesystem I/O, networking.
  • Ability to import user defined libraries.
  • More robust interpreter/compiler/etc -> build system.
  • Automatic updating of tooling.

Versioning

We are now tagging all stable releases on the master branch. These releases follow SemVer 2.0. Development is taking place on the develop branch.

For the versions available, see the releases in this repository.

License

This project is licensed under the MIT license - see the LICENSE file for the details.

You can’t perform that action at this time.