Parcourir la source

Mise à jour de 'parse.leg'

main
benoit.thomas il y a 3 ans
Parent
révision
49a2f1fd81
1 fichiers modifiés avec 18 ajouts et 20 suppressions
  1. +18
    -20
      parse.leg

+ 18
- 20
parse.leg Voir le fichier

@ -551,12 +551,13 @@ int printCode(Node *node)
printf(" , %i }}; \n",node->String.len);
return thisNumber;
}
case Query:
printVariableName(node->type,nodeCount,1);
printf("= { .Query = { Query, &");
printVariableName(node->Query.children[0]->type,nodeCount,0);
printf(" }};\n");
return 0;
case Query: {
int i = printCode(node->Query.children[0]);
int thisNumber=nodeNumber++;
printf("Node node%i",thisNumber);
printf("= { .Query = { Query, &node%i }};\n",i);
return thisNumber;
}
case Star: {
int i = printCode(node->Star.children[0]);
int thisNumber=nodeNumber++;
@ -565,26 +566,24 @@ int printCode(Node *node)
return thisNumber;
}
case Plus:{
int i = printCode(node->Star.children[0]);
int i = printCode(node->Plus.children[0]);
int thisNumber=nodeNumber++;
printf("Node node%i = { .Plus = { Plus, &node%i }};\n",thisNumber,i);
return thisNumber;
}
case Or:{
int i = printCode(node->Star.children[0]);
int j = printCode(node->Star.children[1]);
int i = printCode(node->Or.children[0]);
int j = printCode(node->Or.children[1]);
int thisNumber=nodeNumber++;
printf("Node node%i= { .Or = { Or, &node%i",thisNumber,i);
thisNumber=nodeNumber++;
printf(" , &node%i }};\n",j);
return thisNumber;
}
case And:{
int i = printCode(node->Star.children[0]);
int j = printCode(node->Star.children[1]);
int i = printCode(node->And.children[0]);
int j = printCode(node->And.children[1]);
int thisNumber=nodeNumber++;
printf("Node node%i= { .And = { And, &node%i",thisNumber,i);
thisNumber=nodeNumber++;
printf(" , &node%i }};\n",j);
return thisNumber;
}
@ -599,17 +598,16 @@ int printCode(Node *node)
return thisNumber;
}
case Exc:{
int i = printCode(node->Star.children[0]);
int i = printCode(node->Exc.children[0]);
int thisNumber=nodeNumber++;
printf("Node node%i = { .Exc = { Exc, &node%i }};\n",thisNumber,i);
return 0;
return thisNumber;
}
case Et:
printVariableName(node->type,nodeCount,1);
printf("= { .Et = { Et, &");
printVariableName(node->Et.children[0]->type,nodeCount,0);
printf(" }};\n");
return 0;
int i = printCode(node->Et.children[0]);
int thisNumber=nodeNumber++;
printf("Node node%i = { .Et = { Et, &node%i }};\n",thisNumber,i);
return thisNumber;
case Id:
printVariableName(node->type,nodeCount,1);
printf("= { .Id = { Id, symb");

Chargement…
Annuler
Enregistrer