diff --git a/go.mod b/go.mod index 05200fa..9799f75 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,5 @@ module asciigoat.org/ini go 1.19 + +require asciigoat.org/core v0.3.2 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..d948413 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +asciigoat.org/core v0.3.2 h1:ef4cixd5YPDFUPylgcqMXQMKJTnMD/1IROsFAm/UOO0= +asciigoat.org/core v0.3.2/go.mod h1:o4QARukIxCAnOnIi7gIWd+7z1P1d9qNxuZmOVG4MAno= diff --git a/parser/parser.go b/parser/parser.go new file mode 100644 index 0000000..5d399fd --- /dev/null +++ b/parser/parser.go @@ -0,0 +1,25 @@ +// Package parser parses dosini-style files +package parser + +import ( + "io" + + "asciigoat.org/core/lexer" +) + +// Parser parses a dosini-style document +type Parser struct { + src *lexer.Reader +} + +// NewParser creates a dosini-style parser using +// an [io.Reader] as source +func NewParser(r io.Reader) *Parser { + if r == nil { + return nil + } + + return &Parser{ + src: lexer.NewReader(r), + } +}