diff --git a/csv-parser.go b/csv-parser.go index 440c83a..c9257d5 100644 --- a/csv-parser.go +++ b/csv-parser.go @@ -29,19 +29,19 @@ var EnclosersRunes = map[EncloserId]Encloser{ CurlyBrackets: Encloser{'{', '}'}, } -type CsvParser struct { +type Parser struct { Enclosers []EncloserId Delimiter string Fields []string Line string } -func (parser *CsvParser) Init() { +func (parser *Parser) Init() { parser.Enclosers = []EncloserId{DoubleQuotes, SquareBrackets} parser.Delimiter = " \t" } -func (parser *CsvParser) ExtractEnclosedFieldValue(endChar byte) error { +func (parser *Parser) ExtractEnclosedFieldValue(endChar byte) error { lineLen := len(parser.Line) for i := 1; i < lineLen; i++ { if parser.Line[i] == endChar && parser.Line[i-1] != '\\' { @@ -53,7 +53,14 @@ func (parser *CsvParser) ExtractEnclosedFieldValue(endChar byte) error { return errors.New("Encloser close not found") } -func (parser *CsvParser) Parse(CsvLine string) error { +/* +* Usage: +* import "../csv-parser/" +* var parser csvparser.Parser +* parser.init() +* parser.Parse("a b c d") +*/ +func (parser *Parser) Parse(CsvLine string) error { var err error = nil parser.Fields = make([]string,0) diff --git a/csv-parser_test.go b/csv-parser_test.go index 987aabc..76fa165 100644 --- a/csv-parser_test.go +++ b/csv-parser_test.go @@ -6,7 +6,7 @@ import( func TestParse(t *testing.T) { - var parser CsvParser + var parser Parser var CsvTestValues = [...]string { "field1 field2 field3", // standard CSV @@ -38,7 +38,7 @@ func TestParse(t *testing.T) { } } func TestParseWithEscape(t *testing.T) { - var parser CsvParser + var parser Parser var CsvTestValues = [...]string { "\"\\\"field1 and more\" field2 [\\[field3] ", // Enclosed fields