From 904a9eddbdd95f345e5ea6737a110cf657f5ddcf Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 27 Feb 2016 08:47:59 +0800 Subject: Parse - Handling of trailing commas --- src/parse/paths.cpp | 2 +- src/parse/root.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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 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); -- cgit v1.2.3