GithubHelp home page GithubHelp logo

battledash-2 / mlang Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 3.0 621 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 88.50% Objective-C 6.21% Mercury 2.47% M 0.24% MATLAB 1.19% Limbo 0.22% HTML 1.18%

mlang's Introduction

MLang (v1.8.7): 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.8.7

  • If a { block } is expected but a { isn't seen, it will allow a single expression to pass (which also means there is support for else if)

Package manager

  • There is a package manager under development by justamirror that you can see here.
  • There isn't any official package manager as of now, if any others pop up they will be mentioned here.

Known Bugs

  • PENDING: print with multiple arguments prints an array instead of formatting all args
  • PENDING: Can't return a variable
  • UPDATED: printf and format functions now also include the position of an error (in the case one occurs)
  • FIXED: Error positioning was sometimes negative because of strings

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

  • Add 'import ... as ...'
  • Objects [NOT EXPECTED]

Scrapped Ideas (maybe in the future?)

  • Nothing scrapped...

Done

  • Add options to modify a value in an array [HIGH PRIORITY]
  • Arrays
  • Scopes [HIGH PRIORITY]
  • Strings module
  • HTTP Module (Possible, but unexpected)
  • While loops
  • 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

Stargazers

 avatar

Watchers

 avatar

mlang's Issues

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.