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 parser.token.Is(lexer.TokenKindSeparator) { | ||||
| 			err = parser.nextToken(lexer.TokenKindNewline) | ||||
| 			if err != nil { return } | ||||
| 			 | ||||
| 			err = parser.nextToken() | ||||
| 			return | ||||
| 		} | ||||
|  | ||||
| @ -64,6 +64,9 @@ func (parser *ParsingOperation) parse (sourceFile *file.File) (err error) { | ||||
| 	err = parser.parseMeta() | ||||
| 	if err != nil { return } | ||||
| 
 | ||||
| 	err = parser.parseBody() | ||||
| 	if err != nil { 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