diff options
author | John Hodge <tpg@mutabah.net> | 2016-02-27 08:47:59 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-02-27 08:47:59 +0800 |
commit | 904a9eddbdd95f345e5ea6737a110cf657f5ddcf (patch) | |
tree | 503d04ef2236df63294fa6458fb563be80604248 | |
parent | e73e93f6d7d2d8cbc45eac2921e37bea589f8e4f (diff) | |
download | mrust-904a9eddbdd95f345e5ea6737a110cf657f5ddcf.tar.gz |
Parse - Handling of trailing commas
-rw-r--r-- | src/parse/paths.cpp | 2 | ||||
-rw-r--r-- | src/parse/root.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/parse/paths.cpp b/src/parse/paths.cpp index 95b22c4a..2e4557df 100644 --- a/src/parse/paths.cpp +++ b/src/parse/paths.cpp @@ -171,7 +171,7 @@ AST::Path Parse_Path(TokenStream& lex, bool is_abs, eParsePathGenericMode generi ::std::map< ::std::string, TypeRef> assoc_bounds; ::std::vector<unsigned int> int_args; do { - if( LOOK_AHEAD(lex) == TOK_GT || LOOK_AHEAD(lex) == TOK_DOUBLE_GT ) { + if( LOOK_AHEAD(lex) == TOK_GT || LOOK_AHEAD(lex) == TOK_DOUBLE_GT || LOOK_AHEAD(lex) == TOK_GTE || LOOK_AHEAD(lex) == TOK_DOUBLE_GT_EQUAL ) { GET_TOK(tok, lex); break; } diff --git a/src/parse/root.cpp b/src/parse/root.cpp index eccac880..c8fabc01 100644 --- a/src/parse/root.cpp +++ b/src/parse/root.cpp @@ -321,6 +321,10 @@ AST::Function Parse_FunctionDef(TokenStream& lex, ::std::string abi, AST::MetaIt // Argument list
do {
+ if( LOOK_AHEAD(lex) == TOK_PAREN_CLOSE ) {
+ GET_TOK(tok, lex);
+ break;
+ }
args.push_back( Parse_Function_Arg(lex, !can_be_prototype) );
} while( GET_TOK(tok, lex) == TOK_COMMA );
CHECK_TOK(tok, TOK_PAREN_CLOSE);
|