summaryrefslogtreecommitdiff
path: root/parser/parser.go
blob: 5840f0af159765dfb6686bafde317d82d55df545 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package parser

import (
	"github.com/mewsen/interpreter/ast"
	"github.com/mewsen/interpreter/lexer"
	"github.com/mewsen/interpreter/token"
)

type Parser struct {
	l *lexer.Lexer

	curToken  token.Token
	peekToken token.Token
}

func (p *Parser) NextToken() {
	p.curToken = p.peekToken
	p.peekToken = p.l.NextToken()
}

func New(l *lexer.Lexer) *Parser {
	p := &Parser{l: l}

	p.NextToken()
	p.NextToken()

	return p
}

func (p *Parser) ParseProgram() *ast.Program {
	return nil
}