Goose  Diff

Differences From Artifact [15306b8502]:

  • File bs/parse/resolver.h — part of check-in [5ea9869c62] at 2019-02-01 18:34:21 on branch trunk — Lexer:
    • added TokenProvider interface.
    • added an adapter for a vector of saved tokens as an alternative token provider.
    (user: achavasse size: 854)

To Artifact [516d016db3]:

  • File bs/parse/resolver.h — part of check-in [f35a2c529c] at 2019-02-06 20:39:45 on branch trunk — Parser: parse function expressions. (user: achavasse size: 1019)

1
2
3
4
5
6
7
8
9
10
11
12





13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24












+
+
+
+
+







#ifndef EMPATHY_PARSE_RESOLVER_H
#define EMPATHY_PARSE_RESOLVER_H

namespace empathy::parse
{
    class Resolver
    {
        public:
            Resolver( const ptr< lex::TokenProvider >& tokProv, const sema::Context& c ) :
                m_tokProvider( tokProv ),
                m_context( c )
            {}

            Resolver( const Resolver& r, const sema::Context& c ) :
                m_tokProvider( r.m_tokProvider ),
                m_context( c )
            {}

            const auto& context() const { return m_context; }

            bool eos() const;

            optional< Term > consume();
            optional< Term > consumeUnresolved();