Goose  Diff

Differences From Artifact [a195790560]:

  • File bs/parse/parser.cpp — part of check-in [53c43bd74d] at 2019-01-31 20:08:59 on branch trunk — Parser: handle implicit statement separation. (user: achavasse size: 3541)

To Artifact [cf2827d1b3]:

  • File bs/parse/parser.cpp — part of check-in [0ebd777925] at 2019-01-31 20:29:53 on branch trunk — Builtins: implemented the semicolon operator. (user: achavasse size: 3783)

37
38
39
40
41
42
43


44

45
46
47
48
49
50
51
37
38
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







+
+
-
+







    if( m_seq && m_lastValue )
    {
        const auto& llr = m_lastValue->llr();
        m_seq->emplace_back( move( *llr ) );
        return Value( m_lastValue->type(), make_shared< llr::Element >( m_seq ) );
    }

    // If we don't have a pending value, we wrap it into a void type value
    // which is a sort of hackish way to encode a value that isn't really a value but have side effects.
    return nullopt;
    return Value( GetValueType< void >(), make_shared< llr::Element >( m_seq ) );
}

optional< uint32_t > Parser::getPrecedence( const Term& t )
{
    return visit( [&]( auto&& content )
    {
        return getPrecedence( t, content );