Skip to content

Repository files navigation

hmt-frontend-toy

The hmt-frontend-toy project is responsible for parsing the Toy source code and generating the Cranelift IR. This project contains the lexical parser, the syntax parser, and the IR generation module.

Installation

Prebuilt binaries Windows, Linux and macOS can be downloaded from the Github release page. If there is no distro package available in your preferred manager, you need Rust and cargo to build it.

Install from source:

  1. Clone the repository with git clone https://github.com/hummanta/hmt-frontend-toy.git
  2. From the hmt-frontend-toy directory, run cargo build --release to build the application in release mode.
  3. After a successful compilation, launch the executable with: target/release/hmt-frontend-toy.

Install with cargo

To get the latest bug fixes and features, you can install the development version from git. However, this is not fully tested. That means you're probably going to have more bugs despite having the latest bug fixes.

cargo install --git https://github.com/hummanta/hmt-frontend-toy

This will download the source from the main branch, build and install it in Cargo's global binary directory (~/.cargo/bin/ by default).

Usage

Usage: hmt-frontend-toy [OPTIONS] --input <INPUT> --output <OUTPUT>

Options:
      --input <INPUT>    Path to the input file
      --output <OUTPUT>  Path to the output file
      --print-ast        Also print AST to console
  -h, --help             Print help

Example:

hmt-frontend-toy --input samples/toy/add.toy --ouput add.clif

Development

To build this project, you will need to install the following pre-requisites: Git, Rust and Just.

After cloning the repository, you can simply run just in the package directory to list all available commands. For your first local build, please run just install command to install the dependencies for this project.

Contributing

If anything feels off, or if you feel that some functionality is missing, please check out the contributing page. There you will find instructions for sharing your feedback, building the project locally, and submitting pull requests to the project.

License

Copyright (c) The Hummanta Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Parsing the Toy source code and generating the Cranelift IR. This project contains the lexical parser, the syntax parser, and the IR generation module.

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages