30 lines
		
	
	
		
			680 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			680 B
		
	
	
	
		
			Go
		
	
	
// Package ini is an LL(1) parser for configuration files.
 | 
						|
//
 | 
						|
//	Example:
 | 
						|
//	sections, err := ini.OpenFile("/path/to/file")
 | 
						|
//	if err != nil {
 | 
						|
//		panic(err)
 | 
						|
//	}
 | 
						|
//
 | 
						|
//	profile := "foo"
 | 
						|
//	section, ok := sections.GetSection(profile)
 | 
						|
//	if !ok {
 | 
						|
//		fmt.Printf("section %q could not be found", profile)
 | 
						|
//	}
 | 
						|
//
 | 
						|
// Below is the BNF that describes this parser
 | 
						|
//	Grammar:
 | 
						|
//	stmt -> value stmt'
 | 
						|
//	stmt' -> epsilon | op stmt
 | 
						|
//	value -> number | string | boolean | quoted_string
 | 
						|
//
 | 
						|
//	section -> [ section'
 | 
						|
//	section' -> value section_close
 | 
						|
//	section_close -> ]
 | 
						|
//
 | 
						|
//	SkipState will skip (NL WS)+
 | 
						|
//
 | 
						|
//	comment -> # comment' | ; comment'
 | 
						|
//	comment' -> epsilon | value
 | 
						|
package ini
 |