Code Monkey home page Code Monkey logo

js2c's Introduction

js2c - JavaScript to C

WORK IN PROGRESS, BUT YOU CAN HELP

Transform JavaScript in C

Coverage Status Build Status

Summary

Why?

The idea is bring the possibility of development to complex platforms like PS4, PS3, PSP and PS Vita using JavaScript to native applications. In a close future JS2C will be able to read and understand external packages.

And the other reason: Why Not?.

Getting

Verify if you have node and npm installed.

npm install js2c

Usage

Simple Usage

Then do the Magic.

var js2c = require("js2c"),
    jsString = " function sum(a, b){  console.log(a + b) } ";

var program = js2c(jsString); // returns "void sum(int x, int y) { printf("%d ", x + y); }"
program.exec(); // Compile String as a C program and Execute Binary

Methods

About js2c Methods:

Parse

Return parsed strings without modify/save in JS2C state

var js2c = require("js2c");

js2c.parse("var i = 1"); // returns "int i = 1;"

Compile

Compile current program, however you can specify the path where compiled program will be stored.

var js2c = require("js2c"),
    program = js2c(jsCode);

var path = "./bin";

c.compile(path); // path is optional

Exec

Create binary file in memory and execute after it.

var js2c = require("js2c"),
    program = js2c(jsCode);

c.exec();

Notes

IMPORTANT: For while you have to define variable before use it.

Roadmap

  • Variable declarations
    • string
    • interger
    • boolean
    • array
    • object
  • Functions declarations
    • callbacks declarations
    • closure cases
  • Native Funcs/Methods (console, import, while, for, Array.lengthand much others...)
  • Modules declarations (import cases)

js2c's People

Contributors

raphamorim avatar

Stargazers

scriptman avatar  avatar  avatar  avatar 梅剑 avatar Enrique Frade avatar Andrews Medina avatar André Vitor Valle avatar Vitor Nogueira avatar Lucas Inacio avatar Fernando Miçalli avatar Victor Campos avatar Alberto Souza avatar Erick avatar

Watchers

Andrews Medina avatar James Cloos avatar Alberto Souza avatar  avatar  avatar

Forkers

andrewsmedina

js2c's Issues

Release features

  • Variable declarations
    • string
    • interger
    • boolean
    • array
    • object
  • Functions declarations
  • Modules declarations (import cases)

Parse variables type

string nome = "raphael";
int numero = 1;

string mustReturnsString(string nome) {
   return nome + "abc";
}

Converting typing of variables

Yeah, this really it's a problem.

The best solution for now is to ask for all the variables possess a boot.
Like:

var string = new String(),
    int = new Number();

And use default values for undefined types (I'm think in int)

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.