| // 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 |