30 lines
729 B
Go
30 lines
729 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_slash
|
|
// comment_slash -> / comment'
|
|
// comment' -> epsilon | value
|
|
package ini
|