SYM_IDENTIFIER(main) SYM_LPARENTHESIS SYM_IDENTIFIER(n) SYM_RPARENTHESIS SYM_LBRACE SYM_IF SYM_LPARENTHESIS SYM_IDENTIFIER(n) SYM_LT SYM_INTEGER(0) SYM_RPARENTHESIS SYM_LBRACE SYM_IDENTIFIER(n) SYM_ASSIGN SYM_INTEGER(0) SYM_SEMICOLON SYM_RBRACE SYM_ELSE SYM_LBRACE SYM_RBRACE SYM_IDENTIFIER(res) SYM_ASSIGN SYM_INTEGER(1) SYM_SEMICOLON SYM_WHILE SYM_LPARENTHESIS SYM_IDENTIFIER(n) SYM_GT SYM_INTEGER(0) SYM_RPARENTHESIS SYM_LBRACE SYM_IDENTIFIER(res) SYM_ASSIGN SYM_IDENTIFIER(n) SYM_ASTERISK SYM_IDENTIFIER(res) SYM_SEMICOLON SYM_IDENTIFIER(n) SYM_ASSIGN SYM_IDENTIFIER(n) SYM_MINUS SYM_INTEGER(1) SYM_SEMICOLON SYM_RBRACE SYM_RETURN SYM_IDENTIFIER(res) SYM_SEMICOLON SYM_RBRACE SYM_EOF