Compagnie Gaspard Buma
enfr

News

Workshop lubyk

Workshop interne avec l’équipe de l’EPFL-ECAL-lab pour évaluer lubyk. Si tout va bien, on aura quelques démos à mettre en ligne…

Prochain spectacle

Nous travaillons actuellement sur le spectacle des bateaux pour nulle part prévu pour janvier 2013.

wordsAndDigits

Simple example of a ‘ragel’ definition file.

include

include

%%

void parse(char * str)
{
char *p = str; // data pointer
char *pe = str + strlen(str); // past end
int cs; // machine state
int len = 0;
char token1024;

%%{
action append {
token[len] = fc;
len++;
}

action digits {
token[len] = ’\0’;
std::cout << “[DIGITS:” << token << “]”;
len = 0;
}

action word {
token[len] = ’\0’;
std::cout << “[WORD:” << token << “]”;
len = 0;
}

action space {
printf(” “);
}

action ret {
printf(”\n”);
}

digits = digit+ @append %digits;

word = alpha+ @append %word;

main :=
((digits | word) (’ ’ @space | ’\n’ @ret ) )+ ;

write init;
write exec;
}%%

 printf("\n");
}

int main()
{
parse(“I am 32 years old\n”);
}