GithubHelp home page GithubHelp logo

justamirror / mlang Goto Github PK

View Code? Open in Web Editor NEW

This project forked from battledash-2/mlang

0.0 0.0 0.0 618 KB

M Lang - The Arithmetic Language: M is an open-source language that is meant to help people learn about Tokenizers, Parsers, and interpreters. It supports variables, logging, built-in functions and expressions.

License: MIT License

JavaScript 89.69% Objective-C 5.54% Mercury 2.83% M 0.36% MATLAB 1.22% Limbo 0.36%

mlang's Introduction

MLang (v1.7.1): The Mathematics Language

What is M

M is an open-source language that is meant to help people learn about Tokenizers, Parsers, and interpreters. It supports variables, logging, and expressions.

Project Status

Version: v1.7.1

  • Scopes

Known Bugs

  • PENDING: Unary expressions don't work in conversions (-23 => c, f is read as 23 => c, f)
  • FIXED: Unknown bug (Cause: This bug seems to be caused by the new feature which makes it possible for expressions to be split with ;)
  • FIXED: Things like let a = 5; -a is read as let a = 5-a which causes an error due to 'a' being undefined. (This will still happen if you do something like let a = 5 -a)

To-Do (in order from Most Important to Least Important)

  • Scopes

  • For & (Do)? While Loop

  • HTTP Module (Possible, but unexpected)

Canceled Ideas (maybe in the future?)

  • Arrays (Priority: HIGH)

Done

  • Operations like varName += 5
  • Better import/export
  • Multiple arguments in functions (util.arg, util.arg1, util.arg2 || $pid, $pid1, $pid2)
  • Javascript API (Priority: extremely low / not expected soon)
  • Pseudo-pointers / Reference to $pid (passed in variable to a function) and $last (last variable set) (Priority: unexpected)
  • Conditional statements (Priority: HIGH)
  • Multi-line comments (Priority: extremely low)
  • Export keyword (Priority: unknown)
  • Import files (Priority: unknown)
  • Minimal string support (Priority: unknown)
  • Functions (Priority: Medium)
  • Unit Conversion (Priority: unknown)
  • Expressions (Priority: HIGH)
  • Variables (Priority: Medium)
  • Logging (Priority: Low)
  • Built-in Functions (Priority: unknown)

Want a tutorial on how you can make your own language?

Well, are you in luck! I've recently created a tutorial for making a simple number interpreter from scratch.

Check it out!

mlang's People

Contributors

battledash-2 avatar justamirror avatar battlealt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.