aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/homemade/scl/token.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/homemade/scl/token.go')
-rw-r--r--vendor/github.com/homemade/scl/token.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/github.com/homemade/scl/token.go b/vendor/github.com/homemade/scl/token.go
new file mode 100644
index 0000000..77d5ab2
--- /dev/null
+++ b/vendor/github.com/homemade/scl/token.go
@@ -0,0 +1,39 @@
+package scl
+
+//go:generate stringer -type=tokenKind -output=token_string.go
+type tokenKind int
+
+const (
+ tokenLineComment tokenKind = iota
+ tokenMixinDeclaration
+ tokenVariable
+ tokenVariableAssignment
+ tokenFunctionCall
+ tokenLiteral
+ tokenVariableDeclaration
+ tokenConditionalVariableAssignment
+ tokenCommentStart
+ tokenCommentEnd
+)
+
+var tokenKindsByString = map[tokenKind]string{
+ tokenLineComment: "line comment",
+ tokenMixinDeclaration: "mixin declaration",
+ tokenVariableAssignment: "variable assignment",
+ tokenVariableDeclaration: "variable declaration",
+ tokenConditionalVariableAssignment: "conditional variable declaration",
+ tokenFunctionCall: "function call",
+ tokenLiteral: "literal",
+ tokenCommentStart: "comment start",
+ tokenCommentEnd: "comment end",
+}
+
+type token struct {
+ kind tokenKind
+ content string
+ line *scannerLine
+}
+
+func (t token) String() string {
+ return tokenKindsByString[t.kind]
+}