Discussion:
Langage C Kikoololise - Script PHP
(trop ancien pour répondre)
Beranger Seguin
2010-02-21 10:32:45 UTC
Permalink
Bonjour à tous !
C'est mon premier message UseNet et c'est sur CE groupe que je vais le
poster:

J'ai programmé un système (ou du moins je commence) pour transformer
une version du C kikoololisée avec un transformateur PHP qui change ça
en VRAI C.

J'ai mis la page à http://jioparadise.olympe-network.com/kikooC.php

<?php
if(isset($_POST['code'])) { //Si l'user a déjà rempli le formulaire
$code=$_POST['code']; //L'assigner à $code

/*Directives de preprocesseur*/
$code=preg_replace('#\#utiliz (.{2,})#i', '#include $1', $code);
/*Comment ça y'en à qu'une ?? Bon, fin*/

/*Syntaxe*/
$code=preg_replace('#(.*) lol#i', '$1;', $code);
/*Fin de Syntaxe*/

/*Fonctions, opérations de bases et conditions*/
$code=preg_replace('#c-tt#i', '}', $code);
$code=preg_replace('#si (.*)=(.*) alor#i', 'if ($1==$2) {', $code);
$code=preg_replace('#si (.*) alor#i', 'if ($1) {', $code);
$code=preg_replace('#if \((.*):(.*)\) {#i', 'if ($1=$2) {', $code);
$code=preg_replace('#sinn#i', '} else {', $code);
$code=preg_replace('#ekri\((.*)\);#i', 'printf($1);', $code);
$code=preg_replace('#(.*)\((?:°o°|x_x|O_O|o\.o){0,1}\);#i', '$1();',
$code);
/*Fin de la partie*/

/*Cette partie concerne les fonctions*/
$code=preg_replace('#xd dbu :#i', 'int main(int argc, char *argv[])
{', $code); //Un peu spécial
$code=preg_replace('#xd antyez (.*)\((?:-\.\-|°o°|x_x|O_O|o\.o)
{0,1}\) :#i', 'int fonc $1() {', $code);
$code=preg_replace('#xd dsymal (.*)\((?:-\.\-|°o°|x_x|O_O|o\.o)
{0,1}\) :#i', 'float fonc $1() {', $code);
$code=preg_replace('#xd karaktr (.*)\((?:-\.\-|°o°|x_x|O_O|o\.o)
{0,1}\) :#i', 'char fonc $1() {', $code);
$code=preg_replace('#xd antyez (.*)\((.*)\) :#i', 'int fonc $1($2) {',
$code);
$code=preg_replace('#xd dsymal (.*)\((.*)\) :#i', 'float fonc $1($2)
{', $code);
$code=preg_replace('#xd karaktr (.*)\((.*)\) :#i', 'char fonc $1($2)
{', $code);
$code=preg_replace('#envwa (.*);#i', 'return $1;', $code);

if (preg_match('#fonc .*\((.*)\) {#i', $code, $headersFonctions)) { //
Içi on traduit les types des arguments
$i=0;
while(isset($headersFonctions[$i])) {
$headerFonction=$headersFonctions[$i];
$headerFonctionMod=str_replace('fonc', '', $headerFonction);
$headerFonctionMod=str_replace('antyez', 'int', $headerFonctionMod);
$headerFonctionMod=str_replace('dsymal', 'float', $headerFonctionMod);
$headerFonctionMod=str_replace('karaktr', 'char', $headerFonctionMod);
$headerFonctionMod=str_replace('shen2([0-9]*)letr', 'char[$1]',
$headerFonctionMod);
$code=str_replace($headerFonction, $headerFonctionMod, $code);
}
}//Fin de la traduction

/*Fin de la partie... sur les fonctions !*/

/*Cette partie va concerner les variables (typées manuellement oopa)
(obligés de donner une valeur) NO ARRAY SUPPORT !!*/
$code=preg_replace('#antyez (.*): ([0-9]*);#i', 'int $1=$2;', $code);
$code=preg_replace('#dsymal (.*): ([0-9]{1,}),([0-9]{1,});#i', 'float
$1=$2.$3;) {', $code);
$code=preg_replace('#karaktr (.*): ([0-9]{1,3});#i', 'char $1=$2;',
$code);
$code=preg_replace('#karaktr (.*): "([a-z])";#i', 'char $1="$2";',
$code);
$code=preg_replace('#karaktr (.*): ([a-z]);#i', 'char $1="$2";',
$code);
$code=preg_replace('#shen (.*): "(.*)";#i', 'char[] $1="$2";', $code);
$code=preg_replace('#shen (.*): (.*);#i', 'char[] $1="$2";', $code);
$code=preg_replace('#(.*): ([0-9]*);#i', 'int $1=$2;', $code);
$code=preg_replace('#(.*): ([0-9]{1,}),([0-9]{1,});#i', 'float $1$2.$3;) {', $code);
$code=preg_replace('#(.*): ([0-9]{1,3});#i', 'char $1=$2;', $code);
$code=preg_replace('#(.*): "([a-z])";#i', 'char $1="$2";', $code);
$code=preg_replace('#(.*): ([a-z]);#i', 'char $1="$2";', $code);
$code=preg_replace('#(.*): "(.*)";#i', 'char[] $1="$2";', $code);
$code=preg_replace('#(.*): ([a-z]*);#i', 'char[] $1="$2";', $code);
$code=preg_replace('#shen2([0-9]*)letr (.*): "([a-z]*)";#i', 'char[$1]
$2="$3";', $code);
$code=preg_replace('#shen2([0-9]*)letr (.*): ([a-z]*);#i', 'char[$1]
$2="$3";', $code);
/*Fin de la partie sur les variables*/

//Je donnerai plus tard une solution pour écrire les prototypes dans
les .h, déclarer les variables sans valeur et accepter les variables
de types "kikoo" dans les fonctions

/*On traite içi la mise en page de la sortie (pas de coloration ou
d'indentation...pour le moment)*/
$code=htmlspecialchars($code);
$code=stripslashes($code);
$code=nl2br($code);
/*Bon, bah... affichons !!*/

echo($code); //C'est fait !

} else {
?>
<form action="#" method="POST"><textarea rows="50" cols="50"
name="code">
#utiliz <stdio.h>
#utiliz <stdlib.h>

xD Dbu :
MonPote: Frederic LOL //Detection du type de variable (observez le
char[])
Si 2+2=4 alor //Notez le simple "="
ekri("Slt %s", MonPote) LOL
sinn
ekri("Bah ya1prob ac la kalkulet") LOL //C'est pas faux.....
C-tt
fonctionAuNimp(O_O) LOL
envwa 0 LOL
C-tt

</textarea><input type="submit" value="Convertir en C" /></form>
<?php
}
?>

C'est les sources ^^

Bon voilà, sinon comment avec une RegEx on peut faire "si on a une
suite mais qu'il y a au moins une lettre" ( .*[a-zA-Z].* ?) ??

Merci à tous
Aurelgadjo
2010-02-21 22:40:40 UTC
Permalink
Post by Beranger Seguin
J'ai mis la page à http://jioparadise.olympe-network.com/kikooC.php
The service is not available. Please try again later.

:(
Beranger Seguin
2010-02-23 12:18:18 UTC
Permalink
J'ai aussi un topic sdz:
http://www.siteduzero.com/forum-83-491371-p1-kikooc.html#r4679903

Sinon entre "http://www.phwinfo.com/forum/fr-comp-lang-php/402356-
langage-c-kikoololise-script-php.html" et "http://groupes.codes-
sources.com/articlefull.aspx?id=463300", y'a pas mal de sites qui sont
liés avec GooGro ^^. Sinon, on peut utilise klibido pour y accéder ?

Fin bref, commen---tez !!!!

Olivier Miakinen
2010-02-21 22:40:41 UTC
Permalink
Bonjour,
Post by Beranger Seguin
J'ai programmé un système (ou du moins je commence) pour transformer
une version du C kikoololisée avec un transformateur PHP qui change ça
en VRAI C.
J'ai mis la page à http://jioparadise.olympe-network.com/kikooC.php
<?php
[...]
?>
Amusant. Mais bon, la syntaxe en kikoolol est sacrément rigide pour
avoir une chance que ça se traduise bien... Par curiosité : tu arrives à
programmer directement en kikoolol, ou bien tu écris d'abord en C avant
de faire la transformation inverse de ton programme en PHP ?
Post by Beranger Seguin
Bon voilà, sinon comment avec une RegEx on peut faire "si on a une
suite mais qu'il y a au moins une lettre" ( .*[a-zA-Z].* ?) ??
Oui, tu peux faire comme tu l'as écrit, « .*[a-zA-Z].* », ce qui fait le
test et en même temps consomme tous les derniers caractères de la
chaîne. Bien sûr, ceci ne vaut que pour les lettres non accentuées qui
se trouvent dans ASCII.

Un test qui fait la même chose en un peu plus rapide (ne consomme les
caractères que jusqu'à la lettre ASCII) : « .*[a-zA-Z] ».

Maintenant, si tu veux juste une assertion, ce qui ne consomme donc
aucun des caractères restants : « (?=.*[a-zA-Z]) ».

Si tu as des questions plus pointues concernant les regexp, je rappelle
l'existence de fr.comp.lang.regexp, plus adapté.

Cordialement,
--
Olivier Miakinen
Continuer la lecture sur narkive:
Loading...