News
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…
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”);
}