From 1be4378071fa435e7f2d9850b5188dc355ee35e8 Mon Sep 17 00:00:00 2001 From: Caleb Gardner Date: Sun, 19 Sep 2021 23:35:58 -0500 Subject: [PATCH] Added comment support --- tcp.go | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/tcp.go b/tcp.go index 9766b51..cb0369a 100644 --- a/tcp.go +++ b/tcp.go @@ -90,16 +90,38 @@ func parseConf() (links map[int]string, err error) { lineNum := 0 links = make(map[int]string) rdr := bufio.NewReader(conf) + multilineComment := false + var line string for { - lineNum++ - var origLine string - origLine, err = rdr.ReadString('\n') - if err != nil && origLine == "" { - break - } else if origLine == "" { - continue + if line == "" { + lineNum++ + line, err = rdr.ReadString('\n') + if err != nil && line == "" { + break + } else if line == "" { + continue + } } - line := strings.ReplaceAll(origLine, "\t", " ") + startCom, endCom := strings.Index(line, "/*"), strings.Index(line, "*/") + if multilineComment { + if endCom != -1 { + line = line[endCom:] + } else { + continue + } + } + if startCom != -1 { + if endCom != -1 { + line = line[:startCom] + line[endCom:] + continue + } + line = line[:startCom] + multilineComment = true + } + if strings.Contains(line, "//") { + line = line[:strings.Index(line, "//")] + } + line = strings.ReplaceAll(line, "\t", " ") for strings.Contains(line, " ") { line = strings.Replace(line, " ", " ", -1) } @@ -117,6 +139,7 @@ func parseConf() (links map[int]string, err error) { return nil, errors.New("invalid line #" + strconv.Itoa(lineNum)) } links[i] = split[1] + line = "" } err = nil if len(links) == 0 {