record Token { kind: ص64, text: نص, line: ص64, column: i64 } سجل ParserState { tokens: قائمة[Token], cursor: ص64 } fn token_at(state: ParserState) -> Token { return state::tokens[state::cursor]; } fn ابدأ_الرئيسية() -> ص64 { دع plus: Token = Token { kind: 1, text: "+", line: 2, column: 7 }. if (plus::kind != 1) { return 1; } إذا (plus::text != "+") { أرجع 2. } if (plus::line != 2) { return 3; } إذا (plus::column != 7) { أرجع 4. } var state: ParserState = ParserState { tokens: [plus], cursor: 0 }; إذا (token_at(state)::text != "+") { أرجع 5. } var moved: ParserState = state. moved::cursor = 1. if (state::cursor != 0) { return 6; } إذا (moved::cursor != 1) { أرجع 7. } moved::tokens[0]::column = 9. if (state::tokens[0]::column != 7) { return 8; } إذا (moved::tokens[0]::column != 9) { أرجع 9. } let found: نتيجة[Token] = success(plus). if (found::نجاح) { إذا (found::value::line != 2) { أرجع 10. } } وإلا { return 11; } print("3 tokens"); return 0; }