class

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 : String) : Float32

Analyze text to determine if this lexer can handle it Returns a score from 0.0 to 1.0

Source
config
Source
rules
Source