Obelisk::Lexers::YAML
Inherits Obelisk::RegexLexer < Obelisk::Lexer < Reference < Object
YAML lexer Optimized with regex constants
Constants
ALIAS = /\*[a-zA-Z_][a-zA-Z0-9_]*/
ANCHOR = /&[a-zA-Z_][a-zA-Z0-9_]*/
Anchors and aliases
ARRAY_INDICATOR = /^(\s*)(-)(\s)/
Array indicators
BOOLEAN = /\b(?:true|false|yes|no|on|off)\b/i
Boolean values
BRACES = /[\[\]{}]/
Punctuation
COMMA = /,/
COMMENT = /#.*$/
DOC_END = /^\.\.\./
DOC_START = /^---/
Document markers
DOUBLE_QUOTE = /"/
String delimiters
ESCAPE_ANY = /\\./
ESCAPE_HEX = /\\x[0-9a-fA-F]{2}/
ESCAPE_SIMPLE = /\\[\"\\\/bfnrt]/
Escape sequences
ESCAPE_UNICODE = /\\u[0-9a-fA-F]{4}/
ESCAPE_UNICODE_LONG = /\\U[0-9a-fA-F]{8}/
ESCAPED_SINGLE_QUOTE = /\'\'/
KEY_WITH_COLON = /^(\s*)([^#\s][^:]*?)(\s*)(:)(\s|$)/
Keys (before colon)
MULTILINE_INDICATOR = /[|>][-+]?/
Multi-line indicators
NULL = /\b(?:null|~)\b/i
Null values
NUMBER = /-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/
Numbers
NUMBER_HEX = /0x[0-9a-fA-F]+/
NUMBER_OCT = /0o[0-7]+/
PLAIN_SCALAR = /[^\s#,\[\]{}]+/
Plain scalars (unquoted strings)
SINGLE_QUOTE = /'/
STRING_DOUBLE_CONTENT = /[^\"\\]+/
String content patterns
STRING_SINGLE_CONTENT = /[^\']+/
TAG_SIMPLE = /![a-zA-Z_][a-zA-Z0-9_]*/
Tags
TAG_URI = /!<[^>]*>/
TIMESTAMP = /\d{4}-\d{2}-\d{2}(?:[Tt]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})?)?/
Timestamps
WHITESPACE = /\s+/
Whitespace and comments
Instance methods
Analyze text to determine if this lexer can handle it Returns a score from 0.0 to 1.0
config
Sourcerules
Source