Goose  Diff

Differences From Artifact [6ed25d6b3d]:

  • File bs/parse/parser.cpp — part of check-in [d19a6bf065] at 2019-07-31 14:05:40 on branch trunk — Fixed some cyclic reference issues with cyclic CFGs:
    • Moved and renamed sema::CFGBuilder to llr::CFG.
    • llr::Func now owns a CFG pointer, rather than a pointer to its entry BB.
    • Branch and CondBranch now store weak pointers to their target BB.
    (user: achavasse size: 5572) [more...]

To Artifact [bef5bb0d42]:

  • File bs/parse/parser.cpp — part of check-in [2bee844d3c] at 2019-08-05 17:46:41 on branch trunk — Implemented a wrapper around llvm::APSInt for compile time integers to manage mixing operations on integers of different bitsizes, and to automatically extend them as needed. (user: achavasse size: 5572)

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{
    return visit( [&]( auto&& content )
    {
        return parseInfix( content, precedence );
    }, t.content() );
}

bool Parser::parsePrefix( const APSInt& intlit, uint32_t )
{
    m_resolver->consume();
    pushValue( ToValue( intlit ) );
    return true;
}

bool Parser::parsePrefix( const string& strlit, uint32_t )







|







86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{
    return visit( [&]( auto&& content )
    {
        return parseInfix( content, precedence );
    }, t.content() );
}

bool Parser::parsePrefix( const BigInt& intlit, uint32_t )
{
    m_resolver->consume();
    pushValue( ToValue( intlit ) );
    return true;
}

bool Parser::parsePrefix( const string& strlit, uint32_t )