%%{
machine microscript;
action ClearNumber {
currentNumber = 0;
}
action RecordDigit {
uint8_t digit = (*p) - '0';
currentNumber = (currentNumber * 10) + digit;
}
number = ((digit @RecordDigit)+) >ClearNumber;
whitespace = space+;
main := number (whitespace number)*;
}%%
EDIT。 Erläutern Sie mir die Bedeutung dieses ">"-Operators. Ich habe seine Beschreibung aus dem Ragel-Leitfaden in einem Kommentar an @jcomeu zitiert
Soweit ich weiß, wird die Aktion ClearNumber vor RecordDigit aufgerufen, und wenn dies der Fall ist, wird currentNumber mit Null initialisiert; wozu dann die Multiplikation mit 10?
Und schließlich die Definition der Zahl. Was bedeutet number=((digit @RecordDigit)+) >ClearNumber
bedeuten?
Dies ist die Quelle des Codes: aquí
EDIT : *Wie funktioniert RecordDigit im Einzelnen? Was ist p? Ein Zeiger? Wenn ja, worauf zeigt er? Was ist digit =(*p)- '0';
bedeuten? [gelöst]