aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/homemade/scl/scanner_line.go
diff options
context:
space:
mode:
authorNiall Sheridan <nsheridan@gmail.com>2017-01-24 23:43:28 +0000
committerNiall Sheridan <nsheridan@gmail.com>2017-01-25 00:02:37 +0000
commitf635033e3e953e74d67b76a520c9760786330af5 (patch)
tree8e41d7d07c489edbfb45f1d4ffff921b2f6bc265 /vendor/github.com/homemade/scl/scanner_line.go
parent0f4344348419ed6c3ee4236188e456d79e2d51b4 (diff)
Switch to scl, an extension of hcl
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)
+}