JSFiddle - React, Tailwind, and code Playground

by XTREME104

JavaScript

/*
var name:type = value, name:type, name = value, name

function name (name:type = value, name:type, name = value, name):type {...}

name (value, value)
*/

/*
name   = value
name  += value
name  -= value
name  *= value
name  /= value
name  %= value
name  &= value
name  |= value
name  ^= value
name <<= value
name >>= value
*/

/*
TODO
Converting to ASM
Arrays of types
Assignment of different types
Nested Functions with Parameters and Returns
value + value - value * value / value % value << value >> value & value | value ^ value
value+value-value*value/value%value<<value>>value&value|value^value
if (condition) {...}
while (condition) {...}
for (before; condition; each) {...}
do {...} while (condition)
*/

/*
SUPPORTED
Tokenizing
    Variables of type, with value
        var name:type = value, name:type, name = value, name
    Functions with Arguments and Return Types
        function name
        function name:type
        function name (name:type = value, name:type, name = value, name)
        function name (name:type = value, name:type, name = value, name):type
        function name {...}
        function name:type {...}
        function name (name:type = value, name:type, name = value, name) {...}
        function name (name:type = value, name:type, name = value, name):type {...}
    Function Calling
        name(value, value)
    Assignment
        name = name
        name = value
-Variables of types [byte/word/dword/qword]
-Assignment of same types (a = b)->(mov type [a], [b])
-Assignment of constant (a = value)->(mov type [a], value)
Top Level User Defined Functions without Parameters or Returns
Function Calling
-Mnemonics as Functions with Parameters
-ASM Blocks
*/


var variables = [];
var functions = [];

function trace (text) {
   console.log(text);
}

function Var () {
    this.name = "";
    this.type = "";
    this.value = "";
    this.namespace = "";
}

function Argument () {
    this.name = "";
    this.type = "";
    this.value = "";
}

function...