Un compilateur maison!
-
Encore une fois, je n’ai pas fini de vous étonner!
C’est maintenant avec un compilateur que je reviens : WeaC !
#WeaC, c’est quoi?(WeaC, c’est quoi?)
“Weak”, faible en anglais + “C” un langage de programmation. Donc WeaC est… une variante du C en moins bien ^^
Autres noms possible: le “Xav”, le “Vax”, le “C–”, le “X”, le “Çava”, le “ÇaPourraitÊtrePire”, etc.Voici à quoi ressemble du WeaC:
#include <time>#include double out2(int a,int b) { a = 0; string c = "Test"; out(a-b); out(c+"!"-"est"); double d = pow(pow(2,2),2); return d; } int main() { return out2(1,2); }
(Pour ceux qui connaissent le C/C++, ça vous sera familier ;))
Le but du compilateur est de transformer ce code en bytecode (le but est de le faire lire par la JVM au final):
METHOD_START __MAIN__::out2 double(int;int;) LOAD_CONST 0 VAR_STORE 0 LOAD_CONST "Test" VAR_STORE 2 VAR_LOAD 0 VAR_LOAD 1 OPERATION - METHOD_CALL std::out *(*;) VAR_LOAD 2 LOAD_CONST "!" OPERATION + LOAD_CONST "est" OPERATION - METHOD_CALL std::out *(*;) LOAD_CONST 2 LOAD_CONST 2 METHOD_CALL math::pow *(int;int;) LOAD_CONST 2 METHOD_CALL math::pow *(*;int;) VAR_STORE 3 VAR_LOAD 3 RETURN METHOD_END METHOD_START __MAIN__::main int() LOAD_CONST 1 LOAD_CONST 2 METHOD_CALL __MAIN__::out2 *(int;int;) RETURN METHOD_END
Liens
Sources: Comme souvent, tout est sur GitHub!</time>
-
toi tu es un fou ^^
-
O.g xavpok tu es un génie ! Donc si j’ai bien compris ça permet que la JVM puisse lire une variante du C ?
-
Allez zou un gros necropost, mais ça peut prendre des librairies Forge ?
Envoyé de mon iPhone en utilisant Tapatalk
-
Tu peux l’utiliser pour modder si tu veux
Mais c’est TRES peu sûr que tu puisses les utiliser comme tu veux ^^