%%{
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)*;
}%%
編集:この ">" 演算子の意味を理解してください。@jcomeu へのコメントで、ragel ガイドからその説明を引用しました。
RecordDigit の前に ClearNumber アクションが呼び出されることを理解しています。
最後に数の定義です。とはnumber=((digit @RecordDigit)+) >ClearNumber
どういう意味ですか?
これはコードのソースです: here
EDIT : *具体的には、RecordDigit はどのように機能しますか? pdigit =(*p)- '0';
とはポインター?もしそうなら、それは何を指していますか?とはどういう意味ですか? 【解決済み】