diff options
Diffstat (limited to 'vendor/github.com/homemade/scl/scanner_line.go')
-rw-r--r-- | vendor/github.com/homemade/scl/scanner_line.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/github.com/homemade/scl/scanner_line.go b/vendor/github.com/homemade/scl/scanner_line.go new file mode 100644 index 0000000..972c766 --- /dev/null +++ b/vendor/github.com/homemade/scl/scanner_line.go @@ -0,0 +1,38 @@ +package scl + +import ( + "fmt" + "strings" +) + +type lineContent string + +func (s lineContent) indent() int { + return len(s) - len(strings.TrimLeft(string(s), " \t")) +} + +type scannerLine struct { + file string + line int + column int + content lineContent + children scannerTree +} + +func newLine(fileName string, lineNumber, column int, content string) *scannerLine { + return &scannerLine{ + file: fileName, + line: lineNumber, + column: column, + content: lineContent(content), + children: make(scannerTree, 0), + } +} + +func (l *scannerLine) branch() *scannerLine { + return newLine(l.file, l.line, l.content.indent(), strings.Trim(string(l.content), " \t")) +} + +func (l *scannerLine) String() string { + return fmt.Sprintf("%s:%d", l.file, l.line) +} |