1// Package ini is an LL(1) parser for configuration files. 2// 3// Example: 4// sections, err := ini.OpenFile("/path/to/file") 5// if err != nil { 6// panic(err) 7// } 8// 9// profile := "foo" 10// section, ok := sections.GetSection(profile) 11// if !ok { 12// fmt.Printf("section %q could not be found", profile) 13// } 14// 15// Below is the BNF that describes this parser 16// Grammar: 17// stmt -> value stmt' 18// stmt' -> epsilon | op stmt 19// value -> number | string | boolean | quoted_string 20// 21// section -> [ section' 22// section' -> value section_close 23// section_close -> ] 24// 25// SkipState will skip (NL WS)+ 26// 27// comment -> # comment' | ; comment' 28// comment' -> epsilon | value 29package ini 30