xo-reader2: DExpectFormalArglistSsm parses multiple formals
This commit is contained in:
parent
f8d5d8834d
commit
6df599673a
4 changed files with 67 additions and 54 deletions
|
|
@ -215,7 +215,7 @@ namespace xo {
|
|||
|
||||
/** Walkthrough parsing input equivalent to:
|
||||
*
|
||||
* lambda (n : i64;
|
||||
* lambda (n : i64,
|
||||
*
|
||||
**/
|
||||
|
||||
|
|
@ -279,11 +279,10 @@ namespace xo {
|
|||
REQUIRE(result.is_incomplete());
|
||||
}
|
||||
|
||||
#ifdef NOT_YET
|
||||
{
|
||||
auto & result = parser.on_token(Token::i64_token("777"));
|
||||
auto & result = parser.on_token(Token::comma_token());
|
||||
|
||||
log && log("after i64 token:");
|
||||
log && log("after comma token:");
|
||||
log && log(xtag("parser", &parser));
|
||||
log && log(xtag("result", result));
|
||||
|
||||
|
|
@ -292,6 +291,43 @@ namespace xo {
|
|||
REQUIRE(result.is_incomplete());
|
||||
}
|
||||
|
||||
{
|
||||
auto & result = parser.on_token(Token::symbol_token("r"));
|
||||
|
||||
log && log("after symbol(r) token:");
|
||||
log && log(xtag("parser", &parser));
|
||||
log && log(xtag("result", result));
|
||||
|
||||
REQUIRE(parser.has_incomplete_expr() == true);
|
||||
REQUIRE(!result.is_error());
|
||||
REQUIRE(result.is_incomplete());
|
||||
}
|
||||
|
||||
{
|
||||
auto & result = parser.on_token(Token::colon_token());
|
||||
|
||||
log && log("after colon token:");
|
||||
log && log(xtag("parser", &parser));
|
||||
log && log(xtag("result", result));
|
||||
|
||||
REQUIRE(parser.has_incomplete_expr() == true);
|
||||
REQUIRE(!result.is_error());
|
||||
REQUIRE(result.is_incomplete());
|
||||
}
|
||||
|
||||
{
|
||||
auto & result = parser.on_token(Token::symbol_token("i64"));
|
||||
|
||||
log && log("after symbol(i64) token:");
|
||||
log && log(xtag("parser", &parser));
|
||||
log && log(xtag("result", result));
|
||||
|
||||
REQUIRE(parser.has_incomplete_expr() == true);
|
||||
REQUIRE(!result.is_error());
|
||||
REQUIRE(result.is_incomplete());
|
||||
}
|
||||
|
||||
#ifdef NOT_YET
|
||||
{
|
||||
auto & result = parser.on_token(Token::else_token());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue