aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/homemade/scl/scanner_line.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/homemade/scl/scanner_line.go')
-rw-r--r--vendor/github.com/homemade/scl/scanner_line.go38
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)
+}