Added base parse body function
This commit is contained in:
parent
8f42fa9c2a
commit
0a067524ce
18
parser/body.go
Normal file
18
parser/body.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package parser
|
||||||
|
|
||||||
|
import "git.tebibyte.media/sashakoshka/arf/lexer"
|
||||||
|
|
||||||
|
// parse body parses the body of an arf file, after the metadata header.
|
||||||
|
func (parser *ParsingOperation) parseBody () (err error) {
|
||||||
|
err = parser.nextToken(lexer.TokenKindName)
|
||||||
|
if err != nil { return }
|
||||||
|
|
||||||
|
switch parser.token.Value().(string) {
|
||||||
|
case "data":
|
||||||
|
case "type":
|
||||||
|
case "func":
|
||||||
|
case "face":
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
6
parser/data.go
Normal file
6
parser/data.go
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package parser
|
||||||
|
|
||||||
|
// parseData parses a data section
|
||||||
|
func (parser *ParsingOperation) parseData () (err error) {
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,9 @@ func (parser *ParsingOperation) parseMeta () (err error) {
|
|||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
if parser.token.Is(lexer.TokenKindSeparator) {
|
if parser.token.Is(lexer.TokenKindSeparator) {
|
||||||
|
err = parser.nextToken(lexer.TokenKindNewline)
|
||||||
|
if err != nil { return }
|
||||||
|
|
||||||
err = parser.nextToken()
|
err = parser.nextToken()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,9 @@ func (parser *ParsingOperation) parse (sourceFile *file.File) (err error) {
|
|||||||
err = parser.parseMeta()
|
err = parser.parseMeta()
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
|
err = parser.parseBody()
|
||||||
|
if err != nil { return }
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
27
tests/parser/data/main.arf
Normal file
27
tests/parser/data/main.arf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
:arf
|
||||||
|
---
|
||||||
|
|
||||||
|
data wr integer:Int 3202
|
||||||
|
|
||||||
|
data wr integerPointer:{Int}
|
||||||
|
# TODO: data wr integerPointer:{Int} [& integer]
|
||||||
|
|
||||||
|
data wr integerArray16:{Int 16}
|
||||||
|
|
||||||
|
data wr integerArrayVariable:{Int ...}
|
||||||
|
|
||||||
|
data wr integerArrayInitialized:{Int 16}
|
||||||
|
3948 293 293049 948 912
|
||||||
|
340 0 2304 0 4785 92
|
||||||
|
|
||||||
|
data wr object:Obj
|
||||||
|
: this 324
|
||||||
|
: that 2139
|
||||||
|
|
||||||
|
data wr nestedObject:Obj
|
||||||
|
: this
|
||||||
|
: bird0 324
|
||||||
|
: bird1 "hello world"
|
||||||
|
: that
|
||||||
|
: bird2 123.8439
|
||||||
|
: bird3 9328.21348239
|
Reference in New Issue
Block a user