Packages
caffeine_lang
4.4.1
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
src/caffeine_lang/frontend/token.gleam
/// A token with source position information.
pub type PositionedToken {
PositionedToken(token: Token, line: Int, column: Int)
}
/// A token produced by the tokenizer.
pub type Token {
KeywordBlueprints
KeywordExpectations
KeywordFor
KeywordExtends
KeywordRequires
KeywordProvides
KeywordIn
KeywordX
KeywordString
KeywordInteger
KeywordFloat
KeywordBoolean
KeywordList
KeywordDict
KeywordOptional
KeywordDefaulted
KeywordType
KeywordURL
KeywordPercentage
LiteralString(String)
LiteralInteger(Int)
LiteralFloat(Float)
LiteralPercentage(Float)
LiteralTrue
LiteralFalse
SymbolLeftBrace
SymbolRightBrace
SymbolLeftParen
SymbolRightParen
SymbolLeftBracket
SymbolRightBracket
SymbolColon
SymbolComma
SymbolStar
SymbolPlus
SymbolPipe
SymbolEquals
SymbolDotDot
WhitespaceNewline
WhitespaceIndent(Int)
CommentLine(String)
CommentSection(String)
Identifier(String)
EOF
}
/// Convert token to string for error messages.
pub fn to_string(tok: Token) -> String {
case tok {
KeywordBlueprints -> "Blueprints"
KeywordExpectations -> "Expectations"
KeywordFor -> "for"
KeywordExtends -> "extends"
KeywordRequires -> "Requires"
KeywordProvides -> "Provides"
KeywordIn -> "in"
KeywordX -> "x"
KeywordString -> "String"
KeywordInteger -> "Integer"
KeywordFloat -> "Float"
KeywordBoolean -> "Boolean"
KeywordList -> "List"
KeywordDict -> "Dict"
KeywordOptional -> "Optional"
KeywordDefaulted -> "Defaulted"
KeywordType -> "Type"
KeywordURL -> "URL"
KeywordPercentage -> "Percentage"
LiteralString(s) -> "\"" <> s <> "\""
LiteralInteger(_) -> "integer"
LiteralFloat(_) -> "float"
LiteralPercentage(_) -> "percentage"
LiteralTrue -> "true"
LiteralFalse -> "false"
SymbolLeftBrace -> "{"
SymbolRightBrace -> "}"
SymbolLeftParen -> "("
SymbolRightParen -> ")"
SymbolLeftBracket -> "["
SymbolRightBracket -> "]"
SymbolColon -> ":"
SymbolComma -> ","
SymbolStar -> "*"
SymbolPlus -> "+"
SymbolPipe -> "|"
SymbolEquals -> "="
SymbolDotDot -> ".."
WhitespaceNewline -> "newline"
WhitespaceIndent(_) -> "indent"
CommentLine(_) -> "comment"
CommentSection(_) -> "section comment"
Identifier(name) -> name
EOF -> "end of file"
}
}