Giter Site home page Giter Site logo

nanihadesuka / jsetimos Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 133 KB

An interpreted language based on JS, Kotlin and Python

License: GNU General Public License v3.0

HTML 10.65% TypeScript 89.13% Shell 0.23%
interpreter parser lexer programming-language typescript peg-parser

jsetimos's Introduction

About

JsEtimos is an interpreted language based on a mix of python, javascript and kotlin.

Python for the scope rules, minimum boilerplate and the import system.
Javascript for the list and array objects and dynamism.
Kotlin for the lambda and conditional expressions and useful built-in methods.
Also has some extra syntax rules and code flow as pipes and special "?" methods.

The language is executed using a custom lexer, recursive descent parser, AST tree and finally an interepreter.

The parser is of the type PEG with quasi context-free syntax.

The lexer and parser can analize statically the validity of the syntax (and some semantics) and give contextual errors with error line and cause.

Running

The interpreter validates the code and data flow at runtime given the possible dynamism of the language. The runtime will give informative errors but won't show you any contextual information or where (position in the program) the error has occured.

The interpreter can be run in three modes:

  • from a file,
  • shell mode (REPL)
  • from a string given in the command line.

For more info for how to run it read the INSTRUCTIONS file.

As the implementation has been done in Typescript it can run on the browser, node.js and even on the game 0 A.D which uses the spidermonkey js engine (nice game btw, check it out :-> )

Notice

This is a toy language, the implementation is still missing many things, has some bugs and inconsistencies and is not optimized so be gente with it :)

jsetimos's People

Contributors

nanihadesuka avatar

Stargazers

 avatar

Watchers

 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.