Giter Club home page Giter Club logo

interpret's Introduction

interpret

Basic interpreter for EVAL language. (totally invented :))

USAGE

interpret < file

EVAL language

The language is executed line per line.

Loop

while(E) E end

Test

if(E) E end

Variable declaration + affectation

V = E

Function call

foo(E)

Comments

Starting by # eg: a = a+b # A comment

Grammar

E = expression F = function R = float o = operator V = variable

E --> if(E) E --> while(E) E --> end E --> (E) E --> F(E) E --> V=E E --> R E --> V E --> EoE

o --> [+ - / ^ * % > < <= >= == !=]{1} V --> [A-Za-z]+ F --> [A-Za-z]+ R --> [-+]{0,1}[0-9.]+

Operators
  • a = b -> true if a is egual b
  • a > b -> true if a greater than b
  • a < b -> true if a lower than b
  • a ~ b -> true if a not egual to b
  • a + b -> a add b
  • a - b -> a sub b
  • a * b -> a mul b
  • a % b -> a mod b
  • a / b -> a div b
  • a ^ b -> a power b
Operators priority
  • =, >, >, <, ~ ===> 1
  • +,- ===> 2
  • *,/,% ===> 3
  • ^ ===> 4

You can use the () for change the priority.

Predefined functions

print(E) ===> print the value of the expression abs(E) ===> calc the absolute value of the expression sqrt(E) ===> function sqrt cos(E) ===> function cos

EXAMPLES

You can read test.txt, it's a basic program written in EVAL. It print all prime numbers between 1 and 1000.

TODO

  • The ELSE structure : if(E) E else E end
  • Functions definitions : def:f(x) E end
  • Multi-parameters functions
  • Better errors management
  • Multi-chars operators
  • Multi-types (dynamic) : double, int, string, list
  • Very big numbers.

interpret's People

Watchers

James Cloos avatar AssociationSirius 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.