Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@JimPanic
Last active October 14, 2016 12:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JimPanic/806807432bb30fbd043ca9799bcf0ee4 to your computer and use it in GitHub Desktop.
Save JimPanic/806807432bb30fbd043ca9799bcf0ee4 to your computer and use it in GitHub Desktop.
A less entangled and coupled lexer for Coffeescript and the token stream output for itself
###
A set of functions to tokenize a string.
`lexer` is meant to be the entry point to analyse a string. It takes two
parameters, a string containing code and an associated (file) name, and returns
the created set of tokens.
The set of tokens returned by `lexer` is aggregated in `tokenize`, which is
called initially with the result of `initialToken`. This is necessary for the
subsequent tokenize functions as they all need a reference to the previous token
and its location information. `initialToken` takes care of this by providing the
location zero and an empty token holding that information.
All the tokenize functions adhere to the signature `TokenStream` ->
`TokenStream` in any case. The basic trail of execution is as follows:
- take stream and see if a token of form X can be found at its beginning
- return the stream as-is if not
- form a new token with location information based on the last token of the
stream and the matched data in code
- return a new stream object containing the new set of tokens and the code
without the newly generated token's value
`tokenize` calls each tokenize function in a specific order, compares their
argument with the return value and restarts that process if a token has been
added. (This was recursive but node unfortunately does not support TCO yet.
That's why the `tokenize` function looks so awful - it's mimicking recursion
ugh.)
###
F = require 'fundament/lib/function'
A = require 'fundament/lib/array'
{isString} = require 'fundament/lib/types'
Sequence = F.sequence
Token = {
type: undefined
value: undefined
length: undefined
start: undefined
end: undefined
}
Location = {
file: undefined
line: 0
column: 0
index: 0
}
TokenStream = {
code: undefined
tokens: []
}
# Template for tokenize functions:
###
tokenizefunctionname = (stream) ->
match = CHANGEME.exec stream.code
return stream unless match
[value, ...] = match
[..., previous] = stream.tokens
[start, end] = advance previous, value
token = Instance Token, previous, {
start
end
type: 'changeme'
value: value
length: value.length
}
{
code: code[value.length..],
tokens: [tokens..., token]
}
###
Tokenizer = (type, expression) ->
callableType = {
false: () -> type
true: type
}[type.constructor.name is 'Function']
(stream) ->
match = expression.exec stream.code
return stream unless match
[value, ...] = match
[..., previous] = stream.tokens
[start, end] = advance previous, value
t = callableType(value, previous)
return stream unless t
token = Instance Token, previous, {
start
end
type: t
value: value
length: value.length
}
{
code: stream.code[value.length..]
tokens: [stream.tokens..., token]
}
# This is supposed to be(come) the generalized version of the tokenize functions
# for blocks.
BlockTokenizer = (type, offset, fn, condition) ->
(stream) ->
return stream unless condition stream
endIndex = offset + consume stream.code[offset - 1..], 1, fn
return stream unless endIndex?
endLocation = blockEndLocation(stream.code[..endIndex - 1])
[..., previous] = stream.tokens
[start, end] = advanceBlock previous, endLocation
token = Instance Token, previous, {
start
end
type: type
value: stream.code[..endIndex - 1]
length: end.index - start.index
}
{
code: stream.code[endIndex..]
tokens: [stream.tokens..., token]
}
# This function has been extracted from `identifiers` because it handles a very
# unique concern with logic that might be solved differently in the future.
#
# Returns what type of identifier given token is based on current and previous
# token type/value.
#
# NOTE: This may not be necessary here, but since it is mostly not context
# sensitive, there is no harm done keeping it here.
identifierType = (identifier, previous) ->
types_as_is = RELATION.concat words 'unless import export when'
return 'unary' if identifier in UNARY
return 'logic' if identifier in LOGIC
return 'bool' if identifier in BOOL
return 'statement' if identifier in STATEMENTS
return identifier if identifier in types_as_is
'identifier'
lines = (stream) ->
return stream unless stream.code[0] is '\n'
[..., previous] = stream.tokens
[start, end] = advance previous, stream.code[0]
end.line += 1
end.column = 0
token = Instance Token, previous, {
start
end
type: 'newline'
value: stream.code[0]
length: 1
}
{
code: stream.code[1..]
tokens: [stream.tokens..., token]
}
strings = (stream) ->
# Make sure blockStrings is called *before* strings. strings will not take
# triplets into account.
return stream unless stream.code[0] in INLINE_STRING_QUOTES
quote = stream.code[0]
escaped_quote = '\\' + stream.code[0]
endIndex = consume stream.code, 1, (last, lastN, next, index, code) ->
last is quote and (
lastN isnt escaped_quote or
code[index - 2..index - 1] is '\\\\'
)
return stream unless endIndex?
endLocation = blockEndLocation stream.code[..endIndex]
[..., previous] = stream.tokens
[start, end] = advanceBlock previous, endLocation
token = Instance Token, previous, {
start
end
type: 'string-literal'
value: stream.code[..endIndex]
length: endIndex + 1
}
{
code: stream.code[token.length..]
tokens: [stream.tokens..., token]
}
blockStrings = (stream) ->
return stream unless stream.code[..2] in BLOCK_STRING
endIndex = consume stream.code, 3, (last, lastN) -> lastN in BLOCK_STRING
return stream unless endIndex?
endLocation = blockEndLocation stream.code[..endIndex]
[..., previous] = stream.tokens
[start, end] = advanceBlock previous, endLocation
token = Instance Token, previous, {
start
end
type: 'block-string'
value: stream.code[..endIndex]
length: end.index - start.index
}
{
code: stream.code[token.length..]
tokens: [stream.tokens..., token]
}
accessors = (stream) ->
isAccessor = (stream.code[0] is '.' or
stream.code[0] is '@' or
stream.code[..1] is '::') and
(stream.code[..1] isnt '..' and
stream.code[..2] isnt '...')
return stream unless isAccessor
[..., previous] = stream.tokens
[start, end] = advance previous, stream.code[0]
value = stream.code[0]
value += stream.code[1] if stream.code[..1] is '::'
token = Instance Token, previous, {
start
end
type: ACCESSOR_TYPE[value]
value: value
length: value.length
}
{
code: stream.code[value.length..]
tokens: [stream.tokens..., token]
}
operatorType = (operator, previous) ->
return 'colon' if operator is ':'
return 'terminator' if operator is ';'
return 'asterisk' if operator is '*'
return 'existential' if operator is '?'
return 'suppress-newline' if operator is '\\'
return 'assignment' if operator is '='
return 'compare' if operator in COMPARE
return 'compound-assignment' if operator in COMPOUND_ASSIGN
return 'math' if operator in MATH
return 'unary' if operator in UNARY
return 'unary-math' if operator in UNARY_MATH
return 'shift' if operator in SHIFT
return 'logic' if operator in LOGIC
return BRACKET_TYPE[operator] if operator in Object.keys BRACKET_TYPE
return 'splat-or-range' if operator in Object.keys RANGES
undefined
## Helper functions
# Function that always returns a new "instance" of the parameters passed. This
# is only to be used with and for data objects. (I don't know what happens if
# you pass more complex objects to it.)
Instance = (args...) -> Object.assign {}, args...
# Remove BOM from the beginning if there is one
stripBOM = (code) ->
return code.slice(1) if code.charCodeAt(0) is BOM
code
# Remove trailing spaces (NOTE: Why exactly is this necessary?)
stripTrailingSpaces = (code) -> code.replace(TRAILING_SPACES, '')
# Remove carriage returns
stripCarriageReturns = (code) -> code.replace(/\r/g, '')
clean = Sequence stripBOM,
stripTrailingSpaces,
stripCarriageReturns
# Utility function to split up a string by whitespaces. Used for all the
# following literals. Similar to `%w()` in Ruby.`
#
# Takes a string and returns an array with each word as an element.
words = (string) -> string.split(/\s/).filter (string) -> string isnt ''
# Make sure there is always a token to get initial location data from in all
# other tokenizing functions.
#
# Takes a string and a filename, returns a tuple of the form `[code, tokens...]`
initialToken = (code, filename) ->
location = {
file: filename
index: 0
column: 1
line: 1
}
token = Instance Token, {
start: Instance Location, location
end: Instance Location, location
type: 'initial'
value: ''
length: 0
}
{ code: code, tokens: [token] }
# Function to create start and end location objects. It is only usable for
# tokens without newlines.
#
# Takes the previous token and the value of the current token to determine new
# index and column values, merged with the previous token's end location.
advance = (previous, value) ->
start = previous.end
end = Instance Location, start, {
column: start.column + value.length
index: start.index + value.length
}
[start, end]
# Function to create start and end location objects. Usable only for tokens
# possibly spanning over multiple lines.
#
# Takes the previous token and the end position of the current token. This end
# position is usually gathered by `blockEndLocation`.
advanceBlock = (previous, {index, line, column}) ->
start = previous.end
end = Instance Location, start, {
index: start.index + index
line: start.line + line
column: start.column + (column - 1)
}
[start, end]
# Function to calculate the end position of a value possibly spanning multiple
# lines.
#
# Takes the value and uses a `reduce` operation to go through every char,
# aggregating line, column and index values. Returns an object resembling parts
# of a `Location` object.
blockEndLocation = (value) ->
countNewlines = (seed, char, index) ->
seed.index = index
if char is "\n"
seed.line += 1
seed.column = 0
else
seed.column += 1
seed
value.split('').reduce countNewlines, {index: 0, line: 0, column: 0},
# Consume characters in code from given startIndex until the passed condition is
# met or the index falls out of bounds.
#
# Return either the index at which the condition was met or undefined if the
# condition was not met at the end of the code string.
consume = (code, start, condition) ->
for index in [start..code.length - 1]
next = code[index + 1] if index <= (code.length - start)
last = code[index]
lastN = code[(index - start)..index]
return index if condition last, lastN, next, index, code
return undefined
# Consume one character at a time, either into a previous token of type invalid
# or into a new one. If consecutive invalid characters are found, the previous
# token is updated with the new end position and value.
#
# This function does *not* check boundaries of the parameters. This is to be
# done by the tokenize function.
consumeUnknown = (stream) ->
[..., previous] = stream.tokens
if previous.type is 'unknown'
previous.end.index += 1
previous.end.column += 1
previous.value += stream.code[0]
return Instance stream, { code: stream.code[1..] }
[start, end] = advance previous, stream.code[0]
token = Instance Token, previous, {
start: start
end: end
type: 'unknown'
value: stream.code[0]
}
{
code: stream.code[1..]
tokens: [stream.tokens..., token]
}
## Constants
BOM = 65279
TRAILING_SPACES = /\s+$/
IDENTIFIER = /// ^
(?!\d)
( (?: (?!\s)[$\w\x7f-\uffff] )+ )
///
OPERATOR = /// ^ (
?: [-=]> # function
| [-+*/%<>&|^!?=]= # compound assign / compare
| >>>=? # zero-fill right shift
| ([-+:])\1 # doubles
| ([&|<>*/%])\2=? # logic / shift / power / floor division / modulo
| \?(\.|::) # soak access
| \.{2,3} # range or splat
| . # any other character
) ///
NUMBER = ///
^ 0b[01]+ | # binary
^ 0o[0-7]+ | # octal
^ 0x[\da-f]+ | # hex
^ \d*\.?\d+ (?:e[+-]?\d+)? # decimal
///i
REGEX = /// ^
/ (?!/) ((
?: [^ [ / \n \\ ] # every other thing
| \\[^\n] # anything but newlines escaped
| \[ # character class
(?: \\[^\n] | [^ \] \n \\ ] )*
\]
)*) (/)?
///
REGEX_MODIFIER = /^[imgy]+/
FUNCTION = /^[-=]>/
COMMA = /^,/
# Unary tokens
UNARY = words 'new typeof delete do'
UNARY_MATH = words '! ~ not'
# Logical tokens
LOGIC = words '&& || & | ^'
# Bit-shifting tokens
SHIFT = words '<< >> >>>'
# Comparison tokens
COMPARE = words '== != < > <= >='
# Mathematical tokens
MATH = words '+ - * / % // %%'
# Relational tokens that are negatable with the unary not token
RELATION = words 'in of instanceof'
# Boolean tokens
BOOL = words 'true false yes no'
COMMENT = /^#[^#\n]*/
BLOCK_COMMENT = /^###.*###$/
INLINE_STRING_QUOTES = ['"', "'"]
INLINE_STRING_ESCAPED_QUOTES = ['\\"', "\\'"]
BLOCK_STRING = ['"""', "'''"]
STATEMENTS = words 'break continue debugger'
COMPOUND_ASSIGN = words \
'-= += /= *= %= ||= &&= ?= <<= >>= >>>= &= ^= |= **= //= %%='
ACCESSOR_TYPE = {
'.': 'property-accessor'
'@': 'this-accessor'
'::': 'prototype-accessor'
}
BRACKET_TYPE = {
'(': 'open-round-bracket'
')': 'close-round-bracket'
'[': 'open-square-bracket'
']': 'close-square-bracket'
'{': 'open-curly-bracket'
'}': 'close-curly-bracket'
}
RANGES = {
'..': 'range-exclusive'
'...': 'range-inclusive'
}
SPLAT = '...'
WHITESPACE = /^[^\n\S]+/
identifiers = Tokenizer identifierType, IDENTIFIER
operators = Tokenizer operatorType, OPERATOR
comments = Tokenizer 'comment', COMMENT
numbers = Tokenizer 'number', NUMBER
whitespaces = Tokenizer 'whitespace', WHITESPACE
regexModifier = Tokenizer 'regex-modifier', REGEX_MODIFIER
commas = Tokenizer 'comma', COMMA
functions = Tokenizer 'function-arrow', FUNCTION
blockComments = \
BlockTokenizer 'multi-line-comment',
3,
((_, __, next, index, code) -> \
code[index - 2..index] is '###' and next isnt '#'),
((stream) -> stream.code[..2] is '###')
javascript = \
BlockTokenizer 'javascript',
1,
((last, lastN) -> last is '`' and lastN isnt '\\`'),
((stream) -> stream.code[0] is '`')
regexConsumer = (last, lastN, _, index, code) ->
last is '/' and
(lastN isnt '\\/' or code[index - 2..index - 1] is '\\\\/')
regexNoModifier = BlockTokenizer \
'regex',
1,
regexConsumer,
((stream) -> (REGEX.exec stream.code)? )
blockRegexConsumer = (_, ___, next, index, code) ->
code[index - 2..index] is '///'
blockRegexNoModifier = \
BlockTokenizer 'block-regex',
3,
blockRegexConsumer,
((stream) -> stream.code[..2] is '///')
regex = (stream) -> regexModifier regexNoModifier stream
blockRegex = (stream) -> regexModifier blockRegexNoModifier stream
# Main entry point for the lexer
#
# Takes a string and an optional filename, returns an array of token objects.
lexer = (code, filename) ->
stream = tokenize initialToken code, filename
stream.tokens
# Turn code and a stream of tokens into a stream of tokens recursively
# tokenizing the string.
#
# This function will call all tokenize functions in specific order and then
# itself until no more code is available or a complete lexing pass has not
# changed the string to analyse.
tokenize = (stream) ->
newStream = stream
while newStream.code.length
[..., last] = stream.tokens
oldStream = newStream
# This is a hack. But it does work for now.
newStream = identifiers oldStream; continue if newStream isnt oldStream
newStream = blockComments newStream; continue if newStream isnt oldStream
newStream = comments newStream; continue if newStream isnt oldStream
newStream = whitespaces newStream; continue if newStream isnt oldStream
newStream = lines newStream; continue if newStream isnt oldStream
newStream = blockStrings newStream; continue if newStream isnt oldStream
newStream = strings newStream; continue if newStream isnt oldStream
newStream = numbers newStream; continue if newStream isnt oldStream
newStream = blockRegex newStream; continue if newStream isnt oldStream
newStream = regex newStream; continue if newStream isnt oldStream
newStream = javascript newStream; continue if newStream isnt oldStream
newStream = functions newStream; continue if newStream isnt oldStream
newStream = commas newStream; continue if newStream isnt oldStream
newStream = operators newStream; continue if newStream isnt oldStream
newStream = accessors newStream; continue if newStream isnt oldStream
# No tokenize function found a valid string. Consume one character at a time
# into a token with type 'unknown' until a valid one is found or the end of
# the source has been reached.
if newStream.tokens.length is oldStream.tokens.length
newStream = consumeUnknown oldStream
newStream
module.exports = {
lexer
tokenize
identifiers
identifierType
blockComments
comments
whitespaces
lines
blockStrings
strings
numbers
blockRegex
regex
javascript
functions
commas
operators
operatorType
accessors
Token
Location
TokenStream
IDENTIFIER
OPERATOR
UNARY
UNARY_MATH
LOGIC
SHIFT
COMPARE
MATH
RELATION
BOOL
COMMENT
BLOCK_COMMENT
INLINE_STRING_QUOTES
STATEMENTS
WHITESPACE
helper: {
clean
stripBOM
stripTrailingSpaces
stripCarriageReturns
words
initialToken
advance
advanceBlock
blockEndLocation
consumeUnknown
}
}
# Let the lexer analyse itself.
fs = require 'fs'
coffee = require './src/new_lexer'
filename = 'src/new_lexer'
code = fs.readFileSync("#{filename}.coffee").toString()
tokens = coffee.lexer code, filename
shortTokens = tokens.map (token) ->
[
token.type
token.start.line, token.end.line
token.value.replace(/\n/g, '\\n').replace(/\s/g, '˽')
]
process.stdout.write JSON.stringify shortTokens
- initial, 1, 1,
- multi-line-comment, 1, 31, ###\n\nA˽set˽of˽functions˽to˽tokenize˽a˽string.\n\n`lexer`˽is˽meant˽to˽be˽the˽entry˽point˽to˽analyse˽a˽string.˽It˽takes˽two\nparameters,˽a˽string˽containing˽code˽and˽an˽associated˽(file)˽name,˽and˽returns\nthe˽created˽set˽of˽tokens.\n\nThe˽set˽of˽tokens˽returned˽by˽`lexer`˽is˽aggregated˽in˽`tokenize`,˽which˽is\ncalled˽initially˽with˽the˽result˽of˽`initialToken`.˽This˽is˽necessary˽for˽the\nsubsequent˽tokenize˽functions˽as˽they˽all˽need˽a˽reference˽to˽the˽previous˽token\nand˽its˽location˽information.˽`initialToken`˽takes˽care˽of˽this˽by˽providing˽the\nlocation˽zero˽and˽an˽empty˽token˽holding˽that˽information.\n\nAll˽the˽tokenize˽functions˽adhere˽to˽the˽signature˽`TokenStream`˽->\n`TokenStream`˽in˽any˽case.˽The˽basic˽trail˽of˽execution˽is˽as˽follows:\n\n˽-˽take˽stream˽and˽see˽if˽a˽token˽of˽form˽X˽can˽be˽found˽at˽its˽beginning\n˽-˽return˽the˽stream˽as-is˽if˽not\n˽-˽form˽a˽new˽token˽with˽location˽information˽based˽on˽the˽last˽token˽of˽the\n˽˽˽stream˽and˽the˽matched˽data˽in˽code\n˽-˽return˽a˽new˽stream˽object˽containing˽the˽new˽set˽of˽tokens˽and˽the˽code\n˽˽˽without˽the˽newly˽generated˽token's˽value\n\n`tokenize`˽calls˽each˽tokenize˽function˽in˽a˽specific˽order,˽compares˽their\nargument˽with˽the˽return˽value˽and˽restarts˽that˽process˽if˽a˽token˽has˽been\nadded.˽(This˽was˽recursive˽but˽node˽unfortunately˽does˽not˽support˽TCO˽yet.\nThat's˽why˽the˽`tokenize`˽function˽looks˽so˽awful˽-˽it's˽mimicking˽recursion\nugh.)\n\n###
- newline, 31, 32, \n
- newline, 32, 33, \n
- identifier, 33, 33, F
- whitespace, 33, 33, ˽˽˽˽˽˽˽˽˽˽
- assignment, 33, 33, =
- whitespace, 33, 33, ˽
- identifier, 33, 33, require
- whitespace, 33, 33, ˽
- string-literal, 33, 33, 'fundament/lib/function'
- newline, 33, 34, \n
- identifier, 34, 34, A
- whitespace, 34, 34, ˽˽˽˽˽˽˽˽˽˽
- assignment, 34, 34, =
- whitespace, 34, 34, ˽
- identifier, 34, 34, require
- whitespace, 34, 34, ˽
- string-literal, 34, 34, 'fundament/lib/array'
- newline, 34, 35, \n
- open-curly-bracket, 35, 35, {
- identifier, 35, 35, isString
- close-curly-bracket, 35, 35, }
- whitespace, 35, 35, ˽
- assignment, 35, 35, =
- whitespace, 35, 35, ˽
- identifier, 35, 35, require
- whitespace, 35, 35, ˽
- string-literal, 35, 35, 'fundament/lib/types'
- newline, 35, 36, \n
- newline, 36, 37, \n
- identifier, 37, 37, Sequence
- whitespace, 37, 37, ˽
- assignment, 37, 37, =
- whitespace, 37, 37, ˽
- identifier, 37, 37, F
- property-accessor, 37, 37, .
- identifier, 37, 37, sequence
- newline, 37, 38, \n
- newline, 38, 39, \n
- identifier, 39, 39, Token
- whitespace, 39, 39, ˽
- assignment, 39, 39, =
- whitespace, 39, 39, ˽
- open-curly-bracket, 39, 39, {
- newline, 39, 40, \n
- whitespace, 40, 40, ˽˽
- identifier, 40, 40, type
- colon, 40, 40, :
- whitespace, 40, 40, ˽˽˽
- identifier, 40, 40, undefined
- newline, 40, 41, \n
- whitespace, 41, 41, ˽˽
- identifier, 41, 41, value
- colon, 41, 41, :
- whitespace, 41, 41, ˽˽
- identifier, 41, 41, undefined
- newline, 41, 42, \n
- whitespace, 42, 42, ˽˽
- identifier, 42, 42, length
- colon, 42, 42, :
- whitespace, 42, 42, ˽
- identifier, 42, 42, undefined
- newline, 42, 43, \n
- whitespace, 43, 43, ˽˽
- identifier, 43, 43, start
- colon, 43, 43, :
- whitespace, 43, 43, ˽˽
- identifier, 43, 43, undefined
- newline, 43, 44, \n
- whitespace, 44, 44, ˽˽
- identifier, 44, 44, end
- colon, 44, 44, :
- whitespace, 44, 44, ˽˽˽˽
- identifier, 44, 44, undefined
- newline, 44, 45, \n
- close-curly-bracket, 45, 45, }
- newline, 45, 46, \n
- newline, 46, 47, \n
- identifier, 47, 47, Location
- whitespace, 47, 47, ˽
- assignment, 47, 47, =
- whitespace, 47, 47, ˽
- open-curly-bracket, 47, 47, {
- newline, 47, 48, \n
- whitespace, 48, 48, ˽˽
- identifier, 48, 48, file
- colon, 48, 48, :
- whitespace, 48, 48, ˽˽˽
- identifier, 48, 48, undefined
- newline, 48, 49, \n
- whitespace, 49, 49, ˽˽
- identifier, 49, 49, line
- colon, 49, 49, :
- whitespace, 49, 49, ˽˽˽
- number, 49, 49, 0
- newline, 49, 50, \n
- whitespace, 50, 50, ˽˽
- identifier, 50, 50, column
- colon, 50, 50, :
- whitespace, 50, 50, ˽
- number, 50, 50, 0
- newline, 50, 51, \n
- whitespace, 51, 51, ˽˽
- identifier, 51, 51, index
- colon, 51, 51, :
- whitespace, 51, 51, ˽˽
- number, 51, 51, 0
- newline, 51, 52, \n
- close-curly-bracket, 52, 52, }
- newline, 52, 53, \n
- newline, 53, 54, \n
- identifier, 54, 54, TokenStream
- whitespace, 54, 54, ˽
- assignment, 54, 54, =
- whitespace, 54, 54, ˽
- open-curly-bracket, 54, 54, {
- newline, 54, 55, \n
- whitespace, 55, 55, ˽˽
- identifier, 55, 55, code
- colon, 55, 55, :
- whitespace, 55, 55, ˽˽˽
- identifier, 55, 55, undefined
- newline, 55, 56, \n
- whitespace, 56, 56, ˽˽
- identifier, 56, 56, tokens
- colon, 56, 56, :
- whitespace, 56, 56, ˽
- open-square-bracket, 56, 56, [
- close-square-bracket, 56, 56, ]
- newline, 56, 57, \n
- close-curly-bracket, 57, 57, }
- newline, 57, 58, \n
- newline, 58, 59, \n
- comment, 59, 59, #˽Template˽for˽tokenize˽functions:
- newline, 59, 60, \n
- multi-line-comment, 60, 82, ###\ntokenizefunctionname˽=˽(stream)˽->\n˽˽match˽=˽CHANGEME.exec˽stream.code\n\n˽˽return˽stream˽unless˽match\n\n˽˽[value,˽...]˽˽˽˽=˽match\n˽˽[...,˽previous]˽=˽stream.tokens\n˽˽[start,˽end]˽˽˽˽=˽advance˽previous,˽value\n\n˽˽token˽=˽Instance˽Token,˽previous,˽{\n˽˽˽˽start\n˽˽˽˽end\n˽˽˽˽type:˽˽˽˽˽'changeme'\n˽˽˽˽value:˽˽˽˽value\n˽˽˽˽length:˽˽˽value.length\n˽˽}\n\n˽˽{\n˽˽˽˽code:˽code[value.length..],\n˽˽˽˽tokens:˽[tokens...,˽token]\n˽˽}\n###
- newline, 82, 83, \n
- newline, 83, 84, \n
- identifier, 84, 84, Tokenizer
- whitespace, 84, 84, ˽
- assignment, 84, 84, =
- whitespace, 84, 84, ˽
- open-round-bracket, 84, 84, (
- identifier, 84, 84, type
- comma, 84, 84, ,
- whitespace, 84, 84, ˽
- identifier, 84, 84, expression
- close-round-bracket, 84, 84, )
- whitespace, 84, 84, ˽
- function-arrow, 84, 84, ->
- newline, 84, 85, \n
- whitespace, 85, 85, ˽˽
- identifier, 85, 85, callableType
- whitespace, 85, 85, ˽
- assignment, 85, 85, =
- whitespace, 85, 85, ˽
- open-curly-bracket, 85, 85, {
- newline, 85, 86, \n
- whitespace, 86, 86, ˽˽˽˽
- bool, 86, 86, false
- colon, 86, 86, :
- whitespace, 86, 86, ˽˽
- open-round-bracket, 86, 86, (
- close-round-bracket, 86, 86, )
- whitespace, 86, 86, ˽
- function-arrow, 86, 86, ->
- whitespace, 86, 86, ˽
- identifier, 86, 86, type
- newline, 86, 87, \n
- whitespace, 87, 87, ˽˽˽˽
- bool, 87, 87, true
- colon, 87, 87, :
- whitespace, 87, 87, ˽
- identifier, 87, 87, type
- newline, 87, 88, \n
- whitespace, 88, 88, ˽˽
- close-curly-bracket, 88, 88, }
- open-square-bracket, 88, 88, [
- identifier, 88, 88, type
- property-accessor, 88, 88, .
- identifier, 88, 88, constructor
- property-accessor, 88, 88, .
- identifier, 88, 88, name
- whitespace, 88, 88, ˽
- identifier, 88, 88, is
- whitespace, 88, 88, ˽
- string-literal, 88, 88, 'Function'
- close-square-bracket, 88, 88, ]
- newline, 88, 89, \n
- newline, 89, 90, \n
- whitespace, 90, 90, ˽˽
- open-round-bracket, 90, 90, (
- identifier, 90, 90, stream
- close-round-bracket, 90, 90, )
- whitespace, 90, 90, ˽
- function-arrow, 90, 90, ->
- newline, 90, 91, \n
- whitespace, 91, 91, ˽˽˽˽
- identifier, 91, 91, match
- whitespace, 91, 91, ˽
- assignment, 91, 91, =
- whitespace, 91, 91, ˽
- identifier, 91, 91, expression
- property-accessor, 91, 91, .
- identifier, 91, 91, exec
- whitespace, 91, 91, ˽
- identifier, 91, 91, stream
- property-accessor, 91, 91, .
- identifier, 91, 91, code
- newline, 91, 92, \n
- newline, 92, 93, \n
- whitespace, 93, 93, ˽˽˽˽
- identifier, 93, 93, return
- whitespace, 93, 93, ˽
- identifier, 93, 93, stream
- whitespace, 93, 93, ˽
- unless, 93, 93, unless
- whitespace, 93, 93, ˽
- identifier, 93, 93, match
- newline, 93, 94, \n
- newline, 94, 95, \n
- whitespace, 95, 95, ˽˽˽˽
- open-square-bracket, 95, 95, [
- identifier, 95, 95, value
- comma, 95, 95, ,
- whitespace, 95, 95, ˽
- splat-or-range, 95, 95, ...
- close-square-bracket, 95, 95, ]
- whitespace, 95, 95, ˽˽˽˽
- assignment, 95, 95, =
- whitespace, 95, 95, ˽
- identifier, 95, 95, match
- newline, 95, 96, \n
- whitespace, 96, 96, ˽˽˽˽
- open-square-bracket, 96, 96, [
- splat-or-range, 96, 96, ...
- comma, 96, 96, ,
- whitespace, 96, 96, ˽
- identifier, 96, 96, previous
- close-square-bracket, 96, 96, ]
- whitespace, 96, 96, ˽
- assignment, 96, 96, =
- whitespace, 96, 96, ˽
- identifier, 96, 96, stream
- property-accessor, 96, 96, .
- identifier, 96, 96, tokens
- newline, 96, 97, \n
- whitespace, 97, 97, ˽˽˽˽
- open-square-bracket, 97, 97, [
- identifier, 97, 97, start
- comma, 97, 97, ,
- whitespace, 97, 97, ˽
- identifier, 97, 97, end
- close-square-bracket, 97, 97, ]
- whitespace, 97, 97, ˽˽˽˽
- assignment, 97, 97, =
- whitespace, 97, 97, ˽
- identifier, 97, 97, advance
- whitespace, 97, 97, ˽
- identifier, 97, 97, previous
- comma, 97, 97, ,
- whitespace, 97, 97, ˽
- identifier, 97, 97, value
- newline, 97, 98, \n
- newline, 98, 99, \n
- whitespace, 99, 99, ˽˽˽˽
- identifier, 99, 99, t
- whitespace, 99, 99, ˽
- assignment, 99, 99, =
- whitespace, 99, 99, ˽
- identifier, 99, 99, callableType
- open-round-bracket, 99, 99, (
- identifier, 99, 99, value
- comma, 99, 99, ,
- whitespace, 99, 99, ˽
- identifier, 99, 99, previous
- close-round-bracket, 99, 99, )
- newline, 99, 100, \n
- newline, 100, 101, \n
- whitespace, 101, 101, ˽˽˽˽
- identifier, 101, 101, return
- whitespace, 101, 101, ˽
- identifier, 101, 101, stream
- whitespace, 101, 101, ˽
- unless, 101, 101, unless
- whitespace, 101, 101, ˽
- identifier, 101, 101, t
- newline, 101, 102, \n
- newline, 102, 103, \n
- whitespace, 103, 103, ˽˽˽˽
- identifier, 103, 103, token
- whitespace, 103, 103, ˽
- assignment, 103, 103, =
- whitespace, 103, 103, ˽
- identifier, 103, 103, Instance
- whitespace, 103, 103, ˽
- identifier, 103, 103, Token
- comma, 103, 103, ,
- whitespace, 103, 103, ˽
- identifier, 103, 103, previous
- comma, 103, 103, ,
- whitespace, 103, 103, ˽
- open-curly-bracket, 103, 103, {
- newline, 103, 104, \n
- whitespace, 104, 104, ˽˽˽˽˽˽
- identifier, 104, 104, start
- newline, 104, 105, \n
- whitespace, 105, 105, ˽˽˽˽˽˽
- identifier, 105, 105, end
- newline, 105, 106, \n
- whitespace, 106, 106, ˽˽˽˽˽˽
- identifier, 106, 106, type
- colon, 106, 106, :
- whitespace, 106, 106, ˽˽˽
- identifier, 106, 106, t
- newline, 106, 107, \n
- whitespace, 107, 107, ˽˽˽˽˽˽
- identifier, 107, 107, value
- colon, 107, 107, :
- whitespace, 107, 107, ˽˽
- identifier, 107, 107, value
- newline, 107, 108, \n
- whitespace, 108, 108, ˽˽˽˽˽˽
- identifier, 108, 108, length
- colon, 108, 108, :
- whitespace, 108, 108, ˽
- identifier, 108, 108, value
- property-accessor, 108, 108, .
- identifier, 108, 108, length
- newline, 108, 109, \n
- whitespace, 109, 109, ˽˽˽˽
- close-curly-bracket, 109, 109, }
- newline, 109, 110, \n
- newline, 110, 111, \n
- whitespace, 111, 111, ˽˽˽˽
- open-curly-bracket, 111, 111, {
- newline, 111, 112, \n
- whitespace, 112, 112, ˽˽˽˽˽˽
- identifier, 112, 112, code
- colon, 112, 112, :
- whitespace, 112, 112, ˽˽˽
- identifier, 112, 112, stream
- property-accessor, 112, 112, .
- identifier, 112, 112, code
- open-square-bracket, 112, 112, [
- identifier, 112, 112, value
- property-accessor, 112, 112, .
- identifier, 112, 112, length
- splat-or-range, 112, 112, ..
- close-square-bracket, 112, 112, ]
- newline, 112, 113, \n
- whitespace, 113, 113, ˽˽˽˽˽˽
- identifier, 113, 113, tokens
- colon, 113, 113, :
- whitespace, 113, 113, ˽
- open-square-bracket, 113, 113, [
- identifier, 113, 113, stream
- property-accessor, 113, 113, .
- identifier, 113, 113, tokens
- splat-or-range, 113, 113, ...
- comma, 113, 113, ,
- whitespace, 113, 113, ˽
- identifier, 113, 113, token
- close-square-bracket, 113, 113, ]
- newline, 113, 114, \n
- whitespace, 114, 114, ˽˽˽˽
- close-curly-bracket, 114, 114, }
- newline, 114, 115, \n
- newline, 115, 116, \n
- comment, 116, 116, #˽This˽is˽supposed˽to˽be(come)˽the˽generalized˽version˽of˽the˽tokenize˽functions
- newline, 116, 117, \n
- comment, 117, 117, #˽for˽blocks.
- newline, 117, 118, \n
- identifier, 118, 118, BlockTokenizer
- whitespace, 118, 118, ˽
- assignment, 118, 118, =
- whitespace, 118, 118, ˽
- open-round-bracket, 118, 118, (
- identifier, 118, 118, type
- comma, 118, 118, ,
- whitespace, 118, 118, ˽
- identifier, 118, 118, offset
- comma, 118, 118, ,
- whitespace, 118, 118, ˽
- identifier, 118, 118, fn
- comma, 118, 118, ,
- whitespace, 118, 118, ˽
- identifier, 118, 118, condition
- close-round-bracket, 118, 118, )
- whitespace, 118, 118, ˽
- function-arrow, 118, 118, ->
- newline, 118, 119, \n
- whitespace, 119, 119, ˽˽
- open-round-bracket, 119, 119, (
- identifier, 119, 119, stream
- close-round-bracket, 119, 119, )
- whitespace, 119, 119, ˽
- function-arrow, 119, 119, ->
- newline, 119, 120, \n
- whitespace, 120, 120, ˽˽˽˽
- identifier, 120, 120, return
- whitespace, 120, 120, ˽
- identifier, 120, 120, stream
- whitespace, 120, 120, ˽
- unless, 120, 120, unless
- whitespace, 120, 120, ˽
- identifier, 120, 120, condition
- whitespace, 120, 120, ˽
- identifier, 120, 120, stream
- newline, 120, 121, \n
- newline, 121, 122, \n
- whitespace, 122, 122, ˽˽˽˽
- identifier, 122, 122, endIndex
- whitespace, 122, 122, ˽
- assignment, 122, 122, =
- whitespace, 122, 122, ˽
- identifier, 122, 122, offset
- whitespace, 122, 122, ˽
- math, 122, 122, +
- whitespace, 122, 122, ˽
- identifier, 122, 122, consume
- whitespace, 122, 122, ˽
- identifier, 122, 122, stream
- property-accessor, 122, 122, .
- identifier, 122, 122, code
- open-square-bracket, 122, 122, [
- identifier, 122, 122, offset
- whitespace, 122, 122, ˽
- math, 122, 122, -
- whitespace, 122, 122, ˽
- number, 122, 122, 1
- splat-or-range, 122, 122, ..
- close-square-bracket, 122, 122, ]
- comma, 122, 122, ,
- whitespace, 122, 122, ˽
- number, 122, 122, 1
- comma, 122, 122, ,
- whitespace, 122, 122, ˽
- identifier, 122, 122, fn
- newline, 122, 123, \n
- newline, 123, 124, \n
- whitespace, 124, 124, ˽˽˽˽
- identifier, 124, 124, return
- whitespace, 124, 124, ˽
- identifier, 124, 124, stream
- whitespace, 124, 124, ˽
- unless, 124, 124, unless
- whitespace, 124, 124, ˽
- identifier, 124, 124, endIndex
- existential, 124, 124, ?
- newline, 124, 125, \n
- newline, 125, 126, \n
- whitespace, 126, 126, ˽˽˽˽
- identifier, 126, 126, endLocation
- whitespace, 126, 126, ˽˽˽˽˽
- assignment, 126, 126, =
- whitespace, 126, 126, ˽
- identifier, 126, 126, blockEndLocation
- open-round-bracket, 126, 126, (
- identifier, 126, 126, stream
- property-accessor, 126, 126, .
- identifier, 126, 126, code
- open-square-bracket, 126, 126, [
- splat-or-range, 126, 126, ..
- identifier, 126, 126, endIndex
- whitespace, 126, 126, ˽
- math, 126, 126, -
- whitespace, 126, 126, ˽
- number, 126, 126, 1
- close-square-bracket, 126, 126, ]
- close-round-bracket, 126, 126, )
- newline, 126, 127, \n
- whitespace, 127, 127, ˽˽˽˽
- open-square-bracket, 127, 127, [
- splat-or-range, 127, 127, ...
- comma, 127, 127, ,
- whitespace, 127, 127, ˽
- identifier, 127, 127, previous
- close-square-bracket, 127, 127, ]
- whitespace, 127, 127, ˽
- assignment, 127, 127, =
- whitespace, 127, 127, ˽
- identifier, 127, 127, stream
- property-accessor, 127, 127, .
- identifier, 127, 127, tokens
- newline, 127, 128, \n
- whitespace, 128, 128, ˽˽˽˽
- open-square-bracket, 128, 128, [
- identifier, 128, 128, start
- comma, 128, 128, ,
- whitespace, 128, 128, ˽
- identifier, 128, 128, end
- close-square-bracket, 128, 128, ]
- whitespace, 128, 128, ˽˽˽˽
- assignment, 128, 128, =
- whitespace, 128, 128, ˽
- identifier, 128, 128, advanceBlock
- whitespace, 128, 128, ˽
- identifier, 128, 128, previous
- comma, 128, 128, ,
- whitespace, 128, 128, ˽
- identifier, 128, 128, endLocation
- newline, 128, 129, \n
- newline, 129, 130, \n
- whitespace, 130, 130, ˽˽˽˽
- identifier, 130, 130, token
- whitespace, 130, 130, ˽
- assignment, 130, 130, =
- whitespace, 130, 130, ˽
- identifier, 130, 130, Instance
- whitespace, 130, 130, ˽
- identifier, 130, 130, Token
- comma, 130, 130, ,
- whitespace, 130, 130, ˽
- identifier, 130, 130, previous
- comma, 130, 130, ,
- whitespace, 130, 130, ˽
- open-curly-bracket, 130, 130, {
- newline, 130, 131, \n
- whitespace, 131, 131, ˽˽˽˽˽˽
- identifier, 131, 131, start
- newline, 131, 132, \n
- whitespace, 132, 132, ˽˽˽˽˽˽
- identifier, 132, 132, end
- newline, 132, 133, \n
- whitespace, 133, 133, ˽˽˽˽˽˽
- identifier, 133, 133, type
- colon, 133, 133, :
- whitespace, 133, 133, ˽˽˽
- identifier, 133, 133, type
- newline, 133, 134, \n
- whitespace, 134, 134, ˽˽˽˽˽˽
- identifier, 134, 134, value
- colon, 134, 134, :
- whitespace, 134, 134, ˽˽
- identifier, 134, 134, stream
- property-accessor, 134, 134, .
- identifier, 134, 134, code
- open-square-bracket, 134, 134, [
- splat-or-range, 134, 134, ..
- identifier, 134, 134, endIndex
- whitespace, 134, 134, ˽
- math, 134, 134, -
- whitespace, 134, 134, ˽
- number, 134, 134, 1
- close-square-bracket, 134, 134, ]
- newline, 134, 135, \n
- whitespace, 135, 135, ˽˽˽˽˽˽
- identifier, 135, 135, length
- colon, 135, 135, :
- whitespace, 135, 135, ˽
- identifier, 135, 135, end
- property-accessor, 135, 135, .
- identifier, 135, 135, index
- whitespace, 135, 135, ˽
- math, 135, 135, -
- whitespace, 135, 135, ˽
- identifier, 135, 135, start
- property-accessor, 135, 135, .
- identifier, 135, 135, index
- newline, 135, 136, \n
- whitespace, 136, 136, ˽˽˽˽
- close-curly-bracket, 136, 136, }
- newline, 136, 137, \n
- newline, 137, 138, \n
- whitespace, 138, 138, ˽˽˽˽
- open-curly-bracket, 138, 138, {
- newline, 138, 139, \n
- whitespace, 139, 139, ˽˽˽˽˽˽
- identifier, 139, 139, code
- colon, 139, 139, :
- whitespace, 139, 139, ˽˽˽
- identifier, 139, 139, stream
- property-accessor, 139, 139, .
- identifier, 139, 139, code
- open-square-bracket, 139, 139, [
- identifier, 139, 139, endIndex
- splat-or-range, 139, 139, ..
- close-square-bracket, 139, 139, ]
- newline, 139, 140, \n
- whitespace, 140, 140, ˽˽˽˽˽˽
- identifier, 140, 140, tokens
- colon, 140, 140, :
- whitespace, 140, 140, ˽
- open-square-bracket, 140, 140, [
- identifier, 140, 140, stream
- property-accessor, 140, 140, .
- identifier, 140, 140, tokens
- splat-or-range, 140, 140, ...
- comma, 140, 140, ,
- whitespace, 140, 140, ˽
- identifier, 140, 140, token
- close-square-bracket, 140, 140, ]
- newline, 140, 141, \n
- whitespace, 141, 141, ˽˽˽˽
- close-curly-bracket, 141, 141, }
- newline, 141, 142, \n
- newline, 142, 143, \n
- comment, 143, 143, #˽This˽function˽has˽been˽extracted˽from˽`identifiers`˽because˽it˽handles˽a˽very
- newline, 143, 144, \n
- comment, 144, 144, #˽unique˽concern˽with˽logic˽that˽might˽be˽solved˽differently˽in˽the˽future.
- newline, 144, 145, \n
- comment, 145, 145, #
- newline, 145, 146, \n
- comment, 146, 146, #˽Returns˽what˽type˽of˽identifier˽given˽token˽is˽based˽on˽current˽and˽previous
- newline, 146, 147, \n
- comment, 147, 147, #˽token˽type/value.
- newline, 147, 148, \n
- comment, 148, 148, #
- newline, 148, 149, \n
- comment, 149, 149, #˽NOTE:˽This˽may˽not˽be˽necessary˽here,˽but˽since˽it˽is˽mostly˽not˽context
- newline, 149, 150, \n
- comment, 150, 150, #˽˽˽˽˽˽˽sensitive,˽there˽is˽no˽harm˽done˽keeping˽it˽here.
- newline, 150, 151, \n
- identifier, 151, 151, identifierType
- whitespace, 151, 151, ˽
- assignment, 151, 151, =
- whitespace, 151, 151, ˽
- open-round-bracket, 151, 151, (
- identifier, 151, 151, identifier
- comma, 151, 151, ,
- whitespace, 151, 151, ˽
- identifier, 151, 151, previous
- close-round-bracket, 151, 151, )
- whitespace, 151, 151, ˽
- function-arrow, 151, 151, ->
- newline, 151, 152, \n
- whitespace, 152, 152, ˽˽
- identifier, 152, 152, types_as_is
- whitespace, 152, 152, ˽
- assignment, 152, 152, =
- whitespace, 152, 152, ˽
- identifier, 152, 152, RELATION
- property-accessor, 152, 152, .
- identifier, 152, 152, concat
- whitespace, 152, 152, ˽
- identifier, 152, 152, words
- whitespace, 152, 152, ˽
- string-literal, 152, 152, 'unless˽import˽export˽when'
- newline, 152, 153, \n
- newline, 153, 154, \n
- whitespace, 154, 154, ˽˽
- identifier, 154, 154, return
- whitespace, 154, 154, ˽
- string-literal, 154, 154, 'unary'
- whitespace, 154, 154, ˽˽˽˽˽
- identifier, 154, 154, if
- whitespace, 154, 154, ˽
- identifier, 154, 154, identifier
- whitespace, 154, 154, ˽
- in, 154, 154, in
- whitespace, 154, 154, ˽
- identifier, 154, 154, UNARY
- newline, 154, 155, \n
- whitespace, 155, 155, ˽˽
- identifier, 155, 155, return
- whitespace, 155, 155, ˽
- string-literal, 155, 155, 'logic'
- whitespace, 155, 155, ˽˽˽˽˽
- identifier, 155, 155, if
- whitespace, 155, 155, ˽
- identifier, 155, 155, identifier
- whitespace, 155, 155, ˽
- in, 155, 155, in
- whitespace, 155, 155, ˽
- identifier, 155, 155, LOGIC
- newline, 155, 156, \n
- whitespace, 156, 156, ˽˽
- identifier, 156, 156, return
- whitespace, 156, 156, ˽
- string-literal, 156, 156, 'bool'
- whitespace, 156, 156, ˽˽˽˽˽˽
- identifier, 156, 156, if
- whitespace, 156, 156, ˽
- identifier, 156, 156, identifier
- whitespace, 156, 156, ˽
- in, 156, 156, in
- whitespace, 156, 156, ˽
- identifier, 156, 156, BOOL
- newline, 156, 157, \n
- whitespace, 157, 157, ˽˽
- identifier, 157, 157, return
- whitespace, 157, 157, ˽
- string-literal, 157, 157, 'statement'
- whitespace, 157, 157, ˽
- identifier, 157, 157, if
- whitespace, 157, 157, ˽
- identifier, 157, 157, identifier
- whitespace, 157, 157, ˽
- in, 157, 157, in
- whitespace, 157, 157, ˽
- identifier, 157, 157, STATEMENTS
- newline, 157, 158, \n
- whitespace, 158, 158, ˽˽
- identifier, 158, 158, return
- whitespace, 158, 158, ˽
- identifier, 158, 158, identifier
- whitespace, 158, 158, ˽˽
- identifier, 158, 158, if
- whitespace, 158, 158, ˽
- identifier, 158, 158, identifier
- whitespace, 158, 158, ˽
- in, 158, 158, in
- whitespace, 158, 158, ˽
- identifier, 158, 158, types_as_is
- newline, 158, 159, \n
- newline, 159, 160, \n
- whitespace, 160, 160, ˽˽
- string-literal, 160, 160, 'identifier'
- newline, 160, 161, \n
- newline, 161, 162, \n
- identifier, 162, 162, lines
- whitespace, 162, 162, ˽
- assignment, 162, 162, =
- whitespace, 162, 162, ˽
- open-round-bracket, 162, 162, (
- identifier, 162, 162, stream
- close-round-bracket, 162, 162, )
- whitespace, 162, 162, ˽
- function-arrow, 162, 162, ->
- newline, 162, 163, \n
- whitespace, 163, 163, ˽˽
- identifier, 163, 163, return
- whitespace, 163, 163, ˽
- identifier, 163, 163, stream
- whitespace, 163, 163, ˽
- unless, 163, 163, unless
- whitespace, 163, 163, ˽
- identifier, 163, 163, stream
- property-accessor, 163, 163, .
- identifier, 163, 163, code
- open-square-bracket, 163, 163, [
- number, 163, 163, 0
- close-square-bracket, 163, 163, ]
- whitespace, 163, 163, ˽
- identifier, 163, 163, is
- whitespace, 163, 163, ˽
- string-literal, 163, 163, '\n'
- newline, 163, 164, \n
- newline, 164, 165, \n
- whitespace, 165, 165, ˽˽
- open-square-bracket, 165, 165, [
- splat-or-range, 165, 165, ...
- comma, 165, 165, ,
- whitespace, 165, 165, ˽
- identifier, 165, 165, previous
- close-square-bracket, 165, 165, ]
- whitespace, 165, 165, ˽
- assignment, 165, 165, =
- whitespace, 165, 165, ˽
- identifier, 165, 165, stream
- property-accessor, 165, 165, .
- identifier, 165, 165, tokens
- newline, 165, 166, \n
- whitespace, 166, 166, ˽˽
- open-square-bracket, 166, 166, [
- identifier, 166, 166, start
- comma, 166, 166, ,
- whitespace, 166, 166, ˽
- identifier, 166, 166, end
- close-square-bracket, 166, 166, ]
- whitespace, 166, 166, ˽˽˽˽
- assignment, 166, 166, =
- whitespace, 166, 166, ˽
- identifier, 166, 166, advance
- whitespace, 166, 166, ˽
- identifier, 166, 166, previous
- comma, 166, 166, ,
- whitespace, 166, 166, ˽
- identifier, 166, 166, stream
- property-accessor, 166, 166, .
- identifier, 166, 166, code
- open-square-bracket, 166, 166, [
- number, 166, 166, 0
- close-square-bracket, 166, 166, ]
- newline, 166, 167, \n
- newline, 167, 168, \n
- whitespace, 168, 168, ˽˽
- identifier, 168, 168, end
- property-accessor, 168, 168, .
- identifier, 168, 168, line
- whitespace, 168, 168, ˽˽
- compound-assignment, 168, 168, +=
- whitespace, 168, 168, ˽
- number, 168, 168, 1
- newline, 168, 169, \n
- whitespace, 169, 169, ˽˽
- identifier, 169, 169, end
- property-accessor, 169, 169, .
- identifier, 169, 169, column
- whitespace, 169, 169, ˽
- assignment, 169, 169, =
- whitespace, 169, 169, ˽
- number, 169, 169, 0
- newline, 169, 170, \n
- newline, 170, 171, \n
- whitespace, 171, 171, ˽˽
- identifier, 171, 171, token
- whitespace, 171, 171, ˽
- assignment, 171, 171, =
- whitespace, 171, 171, ˽
- identifier, 171, 171, Instance
- whitespace, 171, 171, ˽
- identifier, 171, 171, Token
- comma, 171, 171, ,
- whitespace, 171, 171, ˽
- identifier, 171, 171, previous
- comma, 171, 171, ,
- whitespace, 171, 171, ˽
- open-curly-bracket, 171, 171, {
- newline, 171, 172, \n
- whitespace, 172, 172, ˽˽˽˽
- identifier, 172, 172, start
- newline, 172, 173, \n
- whitespace, 173, 173, ˽˽˽˽
- identifier, 173, 173, end
- newline, 173, 174, \n
- whitespace, 174, 174, ˽˽˽˽
- identifier, 174, 174, type
- colon, 174, 174, :
- whitespace, 174, 174, ˽˽˽
- string-literal, 174, 174, 'newline'
- newline, 174, 175, \n
- whitespace, 175, 175, ˽˽˽˽
- identifier, 175, 175, value
- colon, 175, 175, :
- whitespace, 175, 175, ˽˽
- identifier, 175, 175, stream
- property-accessor, 175, 175, .
- identifier, 175, 175, code
- open-square-bracket, 175, 175, [
- number, 175, 175, 0
- close-square-bracket, 175, 175, ]
- newline, 175, 176, \n
- whitespace, 176, 176, ˽˽˽˽
- identifier, 176, 176, length
- colon, 176, 176, :
- whitespace, 176, 176, ˽
- number, 176, 176, 1
- newline, 176, 177, \n
- whitespace, 177, 177, ˽˽
- close-curly-bracket, 177, 177, }
- newline, 177, 178, \n
- newline, 178, 179, \n
- whitespace, 179, 179, ˽˽
- open-curly-bracket, 179, 179, {
- newline, 179, 180, \n
- whitespace, 180, 180, ˽˽˽˽
- identifier, 180, 180, code
- colon, 180, 180, :
- whitespace, 180, 180, ˽˽˽
- identifier, 180, 180, stream
- property-accessor, 180, 180, .
- identifier, 180, 180, code
- open-square-bracket, 180, 180, [
- number, 180, 180, 1
- splat-or-range, 180, 180, ..
- close-square-bracket, 180, 180, ]
- newline, 180, 181, \n
- whitespace, 181, 181, ˽˽˽˽
- identifier, 181, 181, tokens
- colon, 181, 181, :
- whitespace, 181, 181, ˽
- open-square-bracket, 181, 181, [
- identifier, 181, 181, stream
- property-accessor, 181, 181, .
- identifier, 181, 181, tokens
- splat-or-range, 181, 181, ...
- comma, 181, 181, ,
- whitespace, 181, 181, ˽
- identifier, 181, 181, token
- close-square-bracket, 181, 181, ]
- newline, 181, 182, \n
- whitespace, 182, 182, ˽˽
- close-curly-bracket, 182, 182, }
- newline, 182, 183, \n
- newline, 183, 184, \n
- identifier, 184, 184, strings
- whitespace, 184, 184, ˽
- assignment, 184, 184, =
- whitespace, 184, 184, ˽
- open-round-bracket, 184, 184, (
- identifier, 184, 184, stream
- close-round-bracket, 184, 184, )
- whitespace, 184, 184, ˽
- function-arrow, 184, 184, ->
- newline, 184, 185, \n
- whitespace, 185, 185, ˽˽
- comment, 185, 185, #˽Make˽sure˽blockStrings˽is˽called˽*before*˽strings.˽strings˽will˽not˽take
- newline, 185, 186, \n
- whitespace, 186, 186, ˽˽
- comment, 186, 186, #˽triplets˽into˽account.
- newline, 186, 187, \n
- whitespace, 187, 187, ˽˽
- identifier, 187, 187, return
- whitespace, 187, 187, ˽
- identifier, 187, 187, stream
- whitespace, 187, 187, ˽
- unless, 187, 187, unless
- whitespace, 187, 187, ˽
- identifier, 187, 187, stream
- property-accessor, 187, 187, .
- identifier, 187, 187, code
- open-square-bracket, 187, 187, [
- number, 187, 187, 0
- close-square-bracket, 187, 187, ]
- whitespace, 187, 187, ˽
- in, 187, 187, in
- whitespace, 187, 187, ˽
- identifier, 187, 187, INLINE_STRING_QUOTES
- newline, 187, 188, \n
- newline, 188, 189, \n
- whitespace, 189, 189, ˽˽
- identifier, 189, 189, quote
- whitespace, 189, 189, ˽˽˽˽˽˽˽˽˽
- assignment, 189, 189, =
- whitespace, 189, 189, ˽
- identifier, 189, 189, stream
- property-accessor, 189, 189, .
- identifier, 189, 189, code
- open-square-bracket, 189, 189, [
- number, 189, 189, 0
- close-square-bracket, 189, 189, ]
- newline, 189, 190, \n
- whitespace, 190, 190, ˽˽
- identifier, 190, 190, escaped_quote
- whitespace, 190, 190, ˽
- assignment, 190, 190, =
- whitespace, 190, 190, ˽
- string-literal, 190, 190, '\\'
- whitespace, 190, 190, ˽
- math, 190, 190, +
- whitespace, 190, 190, ˽
- identifier, 190, 190, stream
- property-accessor, 190, 190, .
- identifier, 190, 190, code
- open-square-bracket, 190, 190, [
- number, 190, 190, 0
- close-square-bracket, 190, 190, ]
- newline, 190, 191, \n
- newline, 191, 192, \n
- whitespace, 192, 192, ˽˽
- identifier, 192, 192, endIndex
- whitespace, 192, 192, ˽
- assignment, 192, 192, =
- whitespace, 192, 192, ˽
- identifier, 192, 192, consume
- whitespace, 192, 192, ˽
- identifier, 192, 192, stream
- property-accessor, 192, 192, .
- identifier, 192, 192, code
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- number, 192, 192, 1
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- open-round-bracket, 192, 192, (
- identifier, 192, 192, last
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- identifier, 192, 192, lastN
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- identifier, 192, 192, next
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- identifier, 192, 192, index
- comma, 192, 192, ,
- whitespace, 192, 192, ˽
- identifier, 192, 192, code
- close-round-bracket, 192, 192, )
- whitespace, 192, 192, ˽
- function-arrow, 192, 192, ->
- newline, 192, 193, \n
- whitespace, 193, 193, ˽˽˽˽
- identifier, 193, 193, last
- whitespace, 193, 193, ˽
- identifier, 193, 193, is
- whitespace, 193, 193, ˽
- identifier, 193, 193, quote
- whitespace, 193, 193, ˽
- identifier, 193, 193, and
- whitespace, 193, 193, ˽
- open-round-bracket, 193, 193, (
- newline, 193, 194, \n
- whitespace, 194, 194, ˽˽˽˽˽˽
- identifier, 194, 194, lastN
- whitespace, 194, 194, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 194, 194, isnt
- whitespace, 194, 194, ˽
- identifier, 194, 194, escaped_quote
- whitespace, 194, 194, ˽
- identifier, 194, 194, or
- newline, 194, 195, \n
- whitespace, 195, 195, ˽˽˽˽˽˽
- identifier, 195, 195, code
- open-square-bracket, 195, 195, [
- identifier, 195, 195, index
- whitespace, 195, 195, ˽
- math, 195, 195, -
- whitespace, 195, 195, ˽
- number, 195, 195, 2
- splat-or-range, 195, 195, ..
- identifier, 195, 195, index
- whitespace, 195, 195, ˽
- math, 195, 195, -
- whitespace, 195, 195, ˽
- number, 195, 195, 1
- close-square-bracket, 195, 195, ]
- whitespace, 195, 195, ˽
- identifier, 195, 195, is
- whitespace, 195, 195, ˽˽˽
- string-literal, 195, 195, '\\\\'
- newline, 195, 196, \n
- whitespace, 196, 196, ˽˽˽˽
- close-round-bracket, 196, 196, )
- newline, 196, 197, \n
- newline, 197, 198, \n
- whitespace, 198, 198, ˽˽
- identifier, 198, 198, return
- whitespace, 198, 198, ˽
- identifier, 198, 198, stream
- whitespace, 198, 198, ˽
- unless, 198, 198, unless
- whitespace, 198, 198, ˽
- identifier, 198, 198, endIndex
- existential, 198, 198, ?
- newline, 198, 199, \n
- newline, 199, 200, \n
- whitespace, 200, 200, ˽˽
- identifier, 200, 200, endLocation
- whitespace, 200, 200, ˽˽˽˽˽
- assignment, 200, 200, =
- whitespace, 200, 200, ˽
- identifier, 200, 200, blockEndLocation
- whitespace, 200, 200, ˽
- identifier, 200, 200, stream
- property-accessor, 200, 200, .
- identifier, 200, 200, code
- open-square-bracket, 200, 200, [
- splat-or-range, 200, 200, ..
- identifier, 200, 200, endIndex
- close-square-bracket, 200, 200, ]
- newline, 200, 201, \n
- whitespace, 201, 201, ˽˽
- open-square-bracket, 201, 201, [
- splat-or-range, 201, 201, ...
- comma, 201, 201, ,
- whitespace, 201, 201, ˽
- identifier, 201, 201, previous
- close-square-bracket, 201, 201, ]
- whitespace, 201, 201, ˽
- assignment, 201, 201, =
- whitespace, 201, 201, ˽
- identifier, 201, 201, stream
- property-accessor, 201, 201, .
- identifier, 201, 201, tokens
- newline, 201, 202, \n
- whitespace, 202, 202, ˽˽
- open-square-bracket, 202, 202, [
- identifier, 202, 202, start
- comma, 202, 202, ,
- whitespace, 202, 202, ˽
- identifier, 202, 202, end
- close-square-bracket, 202, 202, ]
- whitespace, 202, 202, ˽˽˽˽
- assignment, 202, 202, =
- whitespace, 202, 202, ˽
- identifier, 202, 202, advanceBlock
- whitespace, 202, 202, ˽
- identifier, 202, 202, previous
- comma, 202, 202, ,
- whitespace, 202, 202, ˽
- identifier, 202, 202, endLocation
- newline, 202, 203, \n
- newline, 203, 204, \n
- whitespace, 204, 204, ˽˽
- identifier, 204, 204, token
- whitespace, 204, 204, ˽
- assignment, 204, 204, =
- whitespace, 204, 204, ˽
- identifier, 204, 204, Instance
- whitespace, 204, 204, ˽
- identifier, 204, 204, Token
- comma, 204, 204, ,
- whitespace, 204, 204, ˽
- identifier, 204, 204, previous
- comma, 204, 204, ,
- whitespace, 204, 204, ˽
- open-curly-bracket, 204, 204, {
- newline, 204, 205, \n
- whitespace, 205, 205, ˽˽˽˽
- identifier, 205, 205, start
- newline, 205, 206, \n
- whitespace, 206, 206, ˽˽˽˽
- identifier, 206, 206, end
- newline, 206, 207, \n
- whitespace, 207, 207, ˽˽˽˽
- identifier, 207, 207, type
- colon, 207, 207, :
- whitespace, 207, 207, ˽˽˽
- string-literal, 207, 207, 'string-literal'
- newline, 207, 208, \n
- whitespace, 208, 208, ˽˽˽˽
- identifier, 208, 208, value
- colon, 208, 208, :
- whitespace, 208, 208, ˽˽
- identifier, 208, 208, stream
- property-accessor, 208, 208, .
- identifier, 208, 208, code
- open-square-bracket, 208, 208, [
- splat-or-range, 208, 208, ..
- identifier, 208, 208, endIndex
- close-square-bracket, 208, 208, ]
- newline, 208, 209, \n
- whitespace, 209, 209, ˽˽˽˽
- identifier, 209, 209, length
- colon, 209, 209, :
- whitespace, 209, 209, ˽
- identifier, 209, 209, endIndex
- whitespace, 209, 209, ˽
- math, 209, 209, +
- whitespace, 209, 209, ˽
- number, 209, 209, 1
- newline, 209, 210, \n
- whitespace, 210, 210, ˽˽
- close-curly-bracket, 210, 210, }
- newline, 210, 211, \n
- newline, 211, 212, \n
- whitespace, 212, 212, ˽˽
- open-curly-bracket, 212, 212, {
- newline, 212, 213, \n
- whitespace, 213, 213, ˽˽˽˽
- identifier, 213, 213, code
- colon, 213, 213, :
- whitespace, 213, 213, ˽˽˽
- identifier, 213, 213, stream
- property-accessor, 213, 213, .
- identifier, 213, 213, code
- open-square-bracket, 213, 213, [
- identifier, 213, 213, token
- property-accessor, 213, 213, .
- identifier, 213, 213, length
- splat-or-range, 213, 213, ..
- close-square-bracket, 213, 213, ]
- newline, 213, 214, \n
- whitespace, 214, 214, ˽˽˽˽
- identifier, 214, 214, tokens
- colon, 214, 214, :
- whitespace, 214, 214, ˽
- open-square-bracket, 214, 214, [
- identifier, 214, 214, stream
- property-accessor, 214, 214, .
- identifier, 214, 214, tokens
- splat-or-range, 214, 214, ...
- comma, 214, 214, ,
- whitespace, 214, 214, ˽
- identifier, 214, 214, token
- close-square-bracket, 214, 214, ]
- newline, 214, 215, \n
- whitespace, 215, 215, ˽˽
- close-curly-bracket, 215, 215, }
- newline, 215, 216, \n
- newline, 216, 217, \n
- identifier, 217, 217, blockStrings
- whitespace, 217, 217, ˽
- assignment, 217, 217, =
- whitespace, 217, 217, ˽
- open-round-bracket, 217, 217, (
- identifier, 217, 217, stream
- close-round-bracket, 217, 217, )
- whitespace, 217, 217, ˽
- function-arrow, 217, 217, ->
- newline, 217, 218, \n
- whitespace, 218, 218, ˽˽
- identifier, 218, 218, return
- whitespace, 218, 218, ˽
- identifier, 218, 218, stream
- whitespace, 218, 218, ˽
- unless, 218, 218, unless
- whitespace, 218, 218, ˽
- identifier, 218, 218, stream
- property-accessor, 218, 218, .
- identifier, 218, 218, code
- open-square-bracket, 218, 218, [
- splat-or-range, 218, 218, ..
- number, 218, 218, 2
- close-square-bracket, 218, 218, ]
- whitespace, 218, 218, ˽
- in, 218, 218, in
- whitespace, 218, 218, ˽
- identifier, 218, 218, BLOCK_STRING
- newline, 218, 219, \n
- newline, 219, 220, \n
- whitespace, 220, 220, ˽˽
- identifier, 220, 220, endIndex
- whitespace, 220, 220, ˽
- assignment, 220, 220, =
- whitespace, 220, 220, ˽
- identifier, 220, 220, consume
- whitespace, 220, 220, ˽
- identifier, 220, 220, stream
- property-accessor, 220, 220, .
- identifier, 220, 220, code
- comma, 220, 220, ,
- whitespace, 220, 220, ˽
- number, 220, 220, 3
- comma, 220, 220, ,
- whitespace, 220, 220, ˽
- open-round-bracket, 220, 220, (
- identifier, 220, 220, last
- comma, 220, 220, ,
- whitespace, 220, 220, ˽
- identifier, 220, 220, lastN
- close-round-bracket, 220, 220, )
- whitespace, 220, 220, ˽
- function-arrow, 220, 220, ->
- whitespace, 220, 220, ˽
- identifier, 220, 220, lastN
- whitespace, 220, 220, ˽
- in, 220, 220, in
- whitespace, 220, 220, ˽
- identifier, 220, 220, BLOCK_STRING
- newline, 220, 221, \n
- newline, 221, 222, \n
- whitespace, 222, 222, ˽˽
- identifier, 222, 222, return
- whitespace, 222, 222, ˽
- identifier, 222, 222, stream
- whitespace, 222, 222, ˽
- unless, 222, 222, unless
- whitespace, 222, 222, ˽
- identifier, 222, 222, endIndex
- existential, 222, 222, ?
- newline, 222, 223, \n
- newline, 223, 224, \n
- whitespace, 224, 224, ˽˽
- identifier, 224, 224, endLocation
- whitespace, 224, 224, ˽˽˽˽˽
- assignment, 224, 224, =
- whitespace, 224, 224, ˽
- identifier, 224, 224, blockEndLocation
- whitespace, 224, 224, ˽
- identifier, 224, 224, stream
- property-accessor, 224, 224, .
- identifier, 224, 224, code
- open-square-bracket, 224, 224, [
- splat-or-range, 224, 224, ..
- identifier, 224, 224, endIndex
- close-square-bracket, 224, 224, ]
- newline, 224, 225, \n
- whitespace, 225, 225, ˽˽
- open-square-bracket, 225, 225, [
- splat-or-range, 225, 225, ...
- comma, 225, 225, ,
- whitespace, 225, 225, ˽
- identifier, 225, 225, previous
- close-square-bracket, 225, 225, ]
- whitespace, 225, 225, ˽
- assignment, 225, 225, =
- whitespace, 225, 225, ˽
- identifier, 225, 225, stream
- property-accessor, 225, 225, .
- identifier, 225, 225, tokens
- newline, 225, 226, \n
- whitespace, 226, 226, ˽˽
- open-square-bracket, 226, 226, [
- identifier, 226, 226, start
- comma, 226, 226, ,
- whitespace, 226, 226, ˽
- identifier, 226, 226, end
- close-square-bracket, 226, 226, ]
- whitespace, 226, 226, ˽˽˽˽
- assignment, 226, 226, =
- whitespace, 226, 226, ˽
- identifier, 226, 226, advanceBlock
- whitespace, 226, 226, ˽
- identifier, 226, 226, previous
- comma, 226, 226, ,
- whitespace, 226, 226, ˽
- identifier, 226, 226, endLocation
- newline, 226, 227, \n
- newline, 227, 228, \n
- newline, 228, 229, \n
- whitespace, 229, 229, ˽˽
- identifier, 229, 229, token
- whitespace, 229, 229, ˽
- assignment, 229, 229, =
- whitespace, 229, 229, ˽
- identifier, 229, 229, Instance
- whitespace, 229, 229, ˽
- identifier, 229, 229, Token
- comma, 229, 229, ,
- whitespace, 229, 229, ˽
- identifier, 229, 229, previous
- comma, 229, 229, ,
- whitespace, 229, 229, ˽
- open-curly-bracket, 229, 229, {
- newline, 229, 230, \n
- whitespace, 230, 230, ˽˽˽˽
- identifier, 230, 230, start
- newline, 230, 231, \n
- whitespace, 231, 231, ˽˽˽˽
- identifier, 231, 231, end
- newline, 231, 232, \n
- whitespace, 232, 232, ˽˽˽˽
- identifier, 232, 232, type
- colon, 232, 232, :
- whitespace, 232, 232, ˽˽˽
- string-literal, 232, 232, 'block-string'
- newline, 232, 233, \n
- whitespace, 233, 233, ˽˽˽˽
- identifier, 233, 233, value
- colon, 233, 233, :
- whitespace, 233, 233, ˽˽
- identifier, 233, 233, stream
- property-accessor, 233, 233, .
- identifier, 233, 233, code
- open-square-bracket, 233, 233, [
- splat-or-range, 233, 233, ..
- identifier, 233, 233, endIndex
- close-square-bracket, 233, 233, ]
- newline, 233, 234, \n
- whitespace, 234, 234, ˽˽˽˽
- identifier, 234, 234, length
- colon, 234, 234, :
- whitespace, 234, 234, ˽
- identifier, 234, 234, end
- property-accessor, 234, 234, .
- identifier, 234, 234, index
- whitespace, 234, 234, ˽
- math, 234, 234, -
- whitespace, 234, 234, ˽
- identifier, 234, 234, start
- property-accessor, 234, 234, .
- identifier, 234, 234, index
- newline, 234, 235, \n
- whitespace, 235, 235, ˽˽
- close-curly-bracket, 235, 235, }
- newline, 235, 236, \n
- newline, 236, 237, \n
- whitespace, 237, 237, ˽˽
- open-curly-bracket, 237, 237, {
- newline, 237, 238, \n
- whitespace, 238, 238, ˽˽˽˽
- identifier, 238, 238, code
- colon, 238, 238, :
- whitespace, 238, 238, ˽˽˽
- identifier, 238, 238, stream
- property-accessor, 238, 238, .
- identifier, 238, 238, code
- open-square-bracket, 238, 238, [
- identifier, 238, 238, token
- property-accessor, 238, 238, .
- identifier, 238, 238, length
- splat-or-range, 238, 238, ..
- close-square-bracket, 238, 238, ]
- newline, 238, 239, \n
- whitespace, 239, 239, ˽˽˽˽
- identifier, 239, 239, tokens
- colon, 239, 239, :
- whitespace, 239, 239, ˽
- open-square-bracket, 239, 239, [
- identifier, 239, 239, stream
- property-accessor, 239, 239, .
- identifier, 239, 239, tokens
- splat-or-range, 239, 239, ...
- comma, 239, 239, ,
- whitespace, 239, 239, ˽
- identifier, 239, 239, token
- close-square-bracket, 239, 239, ]
- newline, 239, 240, \n
- whitespace, 240, 240, ˽˽
- close-curly-bracket, 240, 240, }
- newline, 240, 241, \n
- newline, 241, 242, \n
- identifier, 242, 242, accessors
- whitespace, 242, 242, ˽
- assignment, 242, 242, =
- whitespace, 242, 242, ˽
- open-round-bracket, 242, 242, (
- identifier, 242, 242, stream
- close-round-bracket, 242, 242, )
- whitespace, 242, 242, ˽
- function-arrow, 242, 242, ->
- newline, 242, 243, \n
- whitespace, 243, 243, ˽˽
- identifier, 243, 243, isAccessor
- whitespace, 243, 243, ˽
- assignment, 243, 243, =
- whitespace, 243, 243, ˽
- open-round-bracket, 243, 243, (
- identifier, 243, 243, stream
- property-accessor, 243, 243, .
- identifier, 243, 243, code
- open-square-bracket, 243, 243, [
- number, 243, 243, 0
- close-square-bracket, 243, 243, ]
- whitespace, 243, 243, ˽˽˽
- identifier, 243, 243, is
- whitespace, 243, 243, ˽
- string-literal, 243, 243, '.'
- whitespace, 243, 243, ˽˽˽˽
- identifier, 243, 243, or
- newline, 243, 244, \n
- whitespace, 244, 244, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 244, 244, stream
- property-accessor, 244, 244, .
- identifier, 244, 244, code
- open-square-bracket, 244, 244, [
- number, 244, 244, 0
- close-square-bracket, 244, 244, ]
- whitespace, 244, 244, ˽˽˽
- identifier, 244, 244, is
- whitespace, 244, 244, ˽
- string-literal, 244, 244, '@'
- whitespace, 244, 244, ˽˽˽˽
- identifier, 244, 244, or
- newline, 244, 245, \n
- whitespace, 245, 245, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 245, 245, stream
- property-accessor, 245, 245, .
- identifier, 245, 245, code
- open-square-bracket, 245, 245, [
- splat-or-range, 245, 245, ..
- number, 245, 245, 1
- close-square-bracket, 245, 245, ]
- whitespace, 245, 245, ˽
- identifier, 245, 245, is
- whitespace, 245, 245, ˽
- string-literal, 245, 245, '::'
- close-round-bracket, 245, 245, )
- whitespace, 245, 245, ˽˽
- identifier, 245, 245, and
- newline, 245, 246, \n
- whitespace, 246, 246, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 246, 246, (
- identifier, 246, 246, stream
- property-accessor, 246, 246, .
- identifier, 246, 246, code
- open-square-bracket, 246, 246, [
- splat-or-range, 246, 246, ..
- number, 246, 246, 1
- close-square-bracket, 246, 246, ]
- whitespace, 246, 246, ˽
- identifier, 246, 246, isnt
- whitespace, 246, 246, ˽
- string-literal, 246, 246, '..'
- whitespace, 246, 246, ˽
- identifier, 246, 246, and
- newline, 246, 247, \n
- whitespace, 247, 247, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 247, 247, stream
- property-accessor, 247, 247, .
- identifier, 247, 247, code
- open-square-bracket, 247, 247, [
- splat-or-range, 247, 247, ..
- number, 247, 247, 2
- close-square-bracket, 247, 247, ]
- whitespace, 247, 247, ˽
- identifier, 247, 247, isnt
- whitespace, 247, 247, ˽
- string-literal, 247, 247, '...'
- close-round-bracket, 247, 247, )
- newline, 247, 248, \n
- newline, 248, 249, \n
- whitespace, 249, 249, ˽˽
- identifier, 249, 249, return
- whitespace, 249, 249, ˽
- identifier, 249, 249, stream
- whitespace, 249, 249, ˽
- unless, 249, 249, unless
- whitespace, 249, 249, ˽
- identifier, 249, 249, isAccessor
- newline, 249, 250, \n
- newline, 250, 251, \n
- whitespace, 251, 251, ˽˽
- open-square-bracket, 251, 251, [
- splat-or-range, 251, 251, ...
- comma, 251, 251, ,
- whitespace, 251, 251, ˽
- identifier, 251, 251, previous
- close-square-bracket, 251, 251, ]
- whitespace, 251, 251, ˽
- assignment, 251, 251, =
- whitespace, 251, 251, ˽
- identifier, 251, 251, stream
- property-accessor, 251, 251, .
- identifier, 251, 251, tokens
- newline, 251, 252, \n
- whitespace, 252, 252, ˽˽
- open-square-bracket, 252, 252, [
- identifier, 252, 252, start
- comma, 252, 252, ,
- whitespace, 252, 252, ˽
- identifier, 252, 252, end
- close-square-bracket, 252, 252, ]
- whitespace, 252, 252, ˽˽˽˽
- assignment, 252, 252, =
- whitespace, 252, 252, ˽
- identifier, 252, 252, advance
- whitespace, 252, 252, ˽
- identifier, 252, 252, previous
- comma, 252, 252, ,
- whitespace, 252, 252, ˽
- identifier, 252, 252, stream
- property-accessor, 252, 252, .
- identifier, 252, 252, code
- open-square-bracket, 252, 252, [
- number, 252, 252, 0
- close-square-bracket, 252, 252, ]
- newline, 252, 253, \n
- newline, 253, 254, \n
- whitespace, 254, 254, ˽˽
- identifier, 254, 254, value
- whitespace, 254, 254, ˽˽
- assignment, 254, 254, =
- whitespace, 254, 254, ˽
- identifier, 254, 254, stream
- property-accessor, 254, 254, .
- identifier, 254, 254, code
- open-square-bracket, 254, 254, [
- number, 254, 254, 0
- close-square-bracket, 254, 254, ]
- newline, 254, 255, \n
- whitespace, 255, 255, ˽˽
- identifier, 255, 255, value
- whitespace, 255, 255, ˽
- compound-assignment, 255, 255, +=
- whitespace, 255, 255, ˽
- identifier, 255, 255, stream
- property-accessor, 255, 255, .
- identifier, 255, 255, code
- open-square-bracket, 255, 255, [
- number, 255, 255, 1
- close-square-bracket, 255, 255, ]
- whitespace, 255, 255, ˽
- identifier, 255, 255, if
- whitespace, 255, 255, ˽
- identifier, 255, 255, stream
- property-accessor, 255, 255, .
- identifier, 255, 255, code
- open-square-bracket, 255, 255, [
- splat-or-range, 255, 255, ..
- number, 255, 255, 1
- close-square-bracket, 255, 255, ]
- whitespace, 255, 255, ˽
- identifier, 255, 255, is
- whitespace, 255, 255, ˽
- string-literal, 255, 255, '::'
- newline, 255, 256, \n
- newline, 256, 257, \n
- whitespace, 257, 257, ˽˽
- identifier, 257, 257, token
- whitespace, 257, 257, ˽
- assignment, 257, 257, =
- whitespace, 257, 257, ˽
- identifier, 257, 257, Instance
- whitespace, 257, 257, ˽
- identifier, 257, 257, Token
- comma, 257, 257, ,
- whitespace, 257, 257, ˽
- identifier, 257, 257, previous
- comma, 257, 257, ,
- whitespace, 257, 257, ˽
- open-curly-bracket, 257, 257, {
- newline, 257, 258, \n
- whitespace, 258, 258, ˽˽˽˽
- identifier, 258, 258, start
- newline, 258, 259, \n
- whitespace, 259, 259, ˽˽˽˽
- identifier, 259, 259, end
- newline, 259, 260, \n
- whitespace, 260, 260, ˽˽˽˽
- identifier, 260, 260, type
- colon, 260, 260, :
- whitespace, 260, 260, ˽˽˽
- identifier, 260, 260, ACCESSOR_TYPE
- open-square-bracket, 260, 260, [
- identifier, 260, 260, value
- close-square-bracket, 260, 260, ]
- newline, 260, 261, \n
- whitespace, 261, 261, ˽˽˽˽
- identifier, 261, 261, value
- colon, 261, 261, :
- whitespace, 261, 261, ˽˽
- identifier, 261, 261, value
- newline, 261, 262, \n
- whitespace, 262, 262, ˽˽˽˽
- identifier, 262, 262, length
- colon, 262, 262, :
- whitespace, 262, 262, ˽
- identifier, 262, 262, value
- property-accessor, 262, 262, .
- identifier, 262, 262, length
- newline, 262, 263, \n
- whitespace, 263, 263, ˽˽
- close-curly-bracket, 263, 263, }
- newline, 263, 264, \n
- newline, 264, 265, \n
- whitespace, 265, 265, ˽˽
- open-curly-bracket, 265, 265, {
- newline, 265, 266, \n
- whitespace, 266, 266, ˽˽˽˽
- identifier, 266, 266, code
- colon, 266, 266, :
- whitespace, 266, 266, ˽˽˽
- identifier, 266, 266, stream
- property-accessor, 266, 266, .
- identifier, 266, 266, code
- open-square-bracket, 266, 266, [
- identifier, 266, 266, value
- property-accessor, 266, 266, .
- identifier, 266, 266, length
- splat-or-range, 266, 266, ..
- close-square-bracket, 266, 266, ]
- newline, 266, 267, \n
- whitespace, 267, 267, ˽˽˽˽
- identifier, 267, 267, tokens
- colon, 267, 267, :
- whitespace, 267, 267, ˽
- open-square-bracket, 267, 267, [
- identifier, 267, 267, stream
- property-accessor, 267, 267, .
- identifier, 267, 267, tokens
- splat-or-range, 267, 267, ...
- comma, 267, 267, ,
- whitespace, 267, 267, ˽
- identifier, 267, 267, token
- close-square-bracket, 267, 267, ]
- newline, 267, 268, \n
- whitespace, 268, 268, ˽˽
- close-curly-bracket, 268, 268, }
- newline, 268, 269, \n
- newline, 269, 270, \n
- identifier, 270, 270, operatorType
- whitespace, 270, 270, ˽
- assignment, 270, 270, =
- whitespace, 270, 270, ˽
- open-round-bracket, 270, 270, (
- identifier, 270, 270, operator
- comma, 270, 270, ,
- whitespace, 270, 270, ˽
- identifier, 270, 270, previous
- close-round-bracket, 270, 270, )
- whitespace, 270, 270, ˽
- function-arrow, 270, 270, ->
- newline, 270, 271, \n
- whitespace, 271, 271, ˽˽
- identifier, 271, 271, return
- whitespace, 271, 271, ˽
- string-literal, 271, 271, 'colon'
- whitespace, 271, 271, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 271, 271, if
- whitespace, 271, 271, ˽
- identifier, 271, 271, operator
- whitespace, 271, 271, ˽
- identifier, 271, 271, is
- whitespace, 271, 271, ˽
- string-literal, 271, 271, ':'
- newline, 271, 272, \n
- whitespace, 272, 272, ˽˽
- identifier, 272, 272, return
- whitespace, 272, 272, ˽
- string-literal, 272, 272, 'terminator'
- whitespace, 272, 272, ˽˽˽˽˽˽˽˽˽˽˽
- identifier, 272, 272, if
- whitespace, 272, 272, ˽
- identifier, 272, 272, operator
- whitespace, 272, 272, ˽
- identifier, 272, 272, is
- whitespace, 272, 272, ˽
- string-literal, 272, 272, ';'
- newline, 272, 273, \n
- whitespace, 273, 273, ˽˽
- identifier, 273, 273, return
- whitespace, 273, 273, ˽
- string-literal, 273, 273, 'asterisk'
- whitespace, 273, 273, ˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 273, 273, if
- whitespace, 273, 273, ˽
- identifier, 273, 273, operator
- whitespace, 273, 273, ˽
- identifier, 273, 273, is
- whitespace, 273, 273, ˽
- string-literal, 273, 273, '*'
- newline, 273, 274, \n
- whitespace, 274, 274, ˽˽
- identifier, 274, 274, return
- whitespace, 274, 274, ˽
- string-literal, 274, 274, 'existential'
- whitespace, 274, 274, ˽˽˽˽˽˽˽˽˽˽
- identifier, 274, 274, if
- whitespace, 274, 274, ˽
- identifier, 274, 274, operator
- whitespace, 274, 274, ˽
- identifier, 274, 274, is
- whitespace, 274, 274, ˽
- string-literal, 274, 274, '?'
- newline, 274, 275, \n
- whitespace, 275, 275, ˽˽
- identifier, 275, 275, return
- whitespace, 275, 275, ˽
- string-literal, 275, 275, 'suppress-newline'
- whitespace, 275, 275, ˽˽˽˽˽
- identifier, 275, 275, if
- whitespace, 275, 275, ˽
- identifier, 275, 275, operator
- whitespace, 275, 275, ˽
- identifier, 275, 275, is
- whitespace, 275, 275, ˽
- string-literal, 275, 275, '\\'
- newline, 275, 276, \n
- whitespace, 276, 276, ˽˽
- identifier, 276, 276, return
- whitespace, 276, 276, ˽
- string-literal, 276, 276, 'assignment'
- whitespace, 276, 276, ˽˽˽˽˽˽˽˽˽˽˽
- identifier, 276, 276, if
- whitespace, 276, 276, ˽
- identifier, 276, 276, operator
- whitespace, 276, 276, ˽
- identifier, 276, 276, is
- whitespace, 276, 276, ˽
- string-literal, 276, 276, '='
- newline, 276, 277, \n
- whitespace, 277, 277, ˽˽
- identifier, 277, 277, return
- whitespace, 277, 277, ˽
- string-literal, 277, 277, 'compare'
- whitespace, 277, 277, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 277, 277, if
- whitespace, 277, 277, ˽
- identifier, 277, 277, operator
- whitespace, 277, 277, ˽
- in, 277, 277, in
- whitespace, 277, 277, ˽
- identifier, 277, 277, COMPARE
- newline, 277, 278, \n
- whitespace, 278, 278, ˽˽
- identifier, 278, 278, return
- whitespace, 278, 278, ˽
- string-literal, 278, 278, 'compound-assignment'
- whitespace, 278, 278, ˽˽
- identifier, 278, 278, if
- whitespace, 278, 278, ˽
- identifier, 278, 278, operator
- whitespace, 278, 278, ˽
- in, 278, 278, in
- whitespace, 278, 278, ˽
- identifier, 278, 278, COMPOUND_ASSIGN
- newline, 278, 279, \n
- whitespace, 279, 279, ˽˽
- identifier, 279, 279, return
- whitespace, 279, 279, ˽
- string-literal, 279, 279, 'math'
- whitespace, 279, 279, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 279, 279, if
- whitespace, 279, 279, ˽
- identifier, 279, 279, operator
- whitespace, 279, 279, ˽
- in, 279, 279, in
- whitespace, 279, 279, ˽
- identifier, 279, 279, MATH
- newline, 279, 280, \n
- whitespace, 280, 280, ˽˽
- identifier, 280, 280, return
- whitespace, 280, 280, ˽
- string-literal, 280, 280, 'unary'
- whitespace, 280, 280, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 280, 280, if
- whitespace, 280, 280, ˽
- identifier, 280, 280, operator
- whitespace, 280, 280, ˽
- in, 280, 280, in
- whitespace, 280, 280, ˽
- identifier, 280, 280, UNARY
- newline, 280, 281, \n
- whitespace, 281, 281, ˽˽
- identifier, 281, 281, return
- whitespace, 281, 281, ˽
- string-literal, 281, 281, 'unary-math'
- whitespace, 281, 281, ˽˽˽˽˽˽˽˽˽˽˽
- identifier, 281, 281, if
- whitespace, 281, 281, ˽
- identifier, 281, 281, operator
- whitespace, 281, 281, ˽
- in, 281, 281, in
- whitespace, 281, 281, ˽
- identifier, 281, 281, UNARY_MATH
- newline, 281, 282, \n
- whitespace, 282, 282, ˽˽
- identifier, 282, 282, return
- whitespace, 282, 282, ˽
- string-literal, 282, 282, 'shift'
- whitespace, 282, 282, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 282, 282, if
- whitespace, 282, 282, ˽
- identifier, 282, 282, operator
- whitespace, 282, 282, ˽
- in, 282, 282, in
- whitespace, 282, 282, ˽
- identifier, 282, 282, SHIFT
- newline, 282, 283, \n
- whitespace, 283, 283, ˽˽
- identifier, 283, 283, return
- whitespace, 283, 283, ˽
- string-literal, 283, 283, 'logic'
- whitespace, 283, 283, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 283, 283, if
- whitespace, 283, 283, ˽
- identifier, 283, 283, operator
- whitespace, 283, 283, ˽
- in, 283, 283, in
- whitespace, 283, 283, ˽
- identifier, 283, 283, LOGIC
- newline, 283, 284, \n
- whitespace, 284, 284, ˽˽
- identifier, 284, 284, return
- whitespace, 284, 284, ˽
- identifier, 284, 284, BRACKET_TYPE
- open-square-bracket, 284, 284, [
- identifier, 284, 284, operator
- close-square-bracket, 284, 284, ]
- whitespace, 284, 284, ˽
- identifier, 284, 284, if
- whitespace, 284, 284, ˽
- identifier, 284, 284, operator
- whitespace, 284, 284, ˽
- in, 284, 284, in
- whitespace, 284, 284, ˽
- identifier, 284, 284, Object
- property-accessor, 284, 284, .
- identifier, 284, 284, keys
- whitespace, 284, 284, ˽
- identifier, 284, 284, BRACKET_TYPE
- newline, 284, 285, \n
- whitespace, 285, 285, ˽˽
- identifier, 285, 285, return
- whitespace, 285, 285, ˽
- string-literal, 285, 285, 'splat-or-range'
- whitespace, 285, 285, ˽˽˽˽˽˽˽
- identifier, 285, 285, if
- whitespace, 285, 285, ˽
- identifier, 285, 285, operator
- whitespace, 285, 285, ˽
- in, 285, 285, in
- whitespace, 285, 285, ˽
- identifier, 285, 285, Object
- property-accessor, 285, 285, .
- identifier, 285, 285, keys
- whitespace, 285, 285, ˽
- identifier, 285, 285, RANGES
- newline, 285, 286, \n
- newline, 286, 287, \n
- whitespace, 287, 287, ˽˽
- identifier, 287, 287, undefined
- newline, 287, 288, \n
- newline, 288, 289, \n
- comment, 289, 289, #
- comment, 289, 289, #˽Helper˽functions
- newline, 289, 290, \n
- newline, 290, 291, \n
- comment, 291, 291, #˽Function˽that˽always˽returns˽a˽new˽"instance"˽of˽the˽parameters˽passed.˽This
- newline, 291, 292, \n
- comment, 292, 292, #˽is˽only˽to˽be˽used˽with˽and˽for˽data˽objects.˽(I˽don't˽know˽what˽happens˽if
- newline, 292, 293, \n
- comment, 293, 293, #˽you˽pass˽more˽complex˽objects˽to˽it.)
- newline, 293, 294, \n
- identifier, 294, 294, Instance
- whitespace, 294, 294, ˽
- assignment, 294, 294, =
- whitespace, 294, 294, ˽
- open-round-bracket, 294, 294, (
- identifier, 294, 294, args
- splat-or-range, 294, 294, ...
- close-round-bracket, 294, 294, )
- whitespace, 294, 294, ˽
- function-arrow, 294, 294, ->
- whitespace, 294, 294, ˽
- identifier, 294, 294, Object
- property-accessor, 294, 294, .
- identifier, 294, 294, assign
- whitespace, 294, 294, ˽
- open-curly-bracket, 294, 294, {
- close-curly-bracket, 294, 294, }
- comma, 294, 294, ,
- whitespace, 294, 294, ˽
- identifier, 294, 294, args
- splat-or-range, 294, 294, ...
- newline, 294, 295, \n
- newline, 295, 296, \n
- comment, 296, 296, #˽Remove˽BOM˽from˽the˽beginning˽if˽there˽is˽one
- newline, 296, 297, \n
- identifier, 297, 297, stripBOM
- whitespace, 297, 297, ˽
- assignment, 297, 297, =
- whitespace, 297, 297, ˽
- open-round-bracket, 297, 297, (
- identifier, 297, 297, code
- close-round-bracket, 297, 297, )
- whitespace, 297, 297, ˽
- function-arrow, 297, 297, ->
- newline, 297, 298, \n
- whitespace, 298, 298, ˽˽
- identifier, 298, 298, return
- whitespace, 298, 298, ˽
- identifier, 298, 298, code
- property-accessor, 298, 298, .
- identifier, 298, 298, slice
- open-round-bracket, 298, 298, (
- number, 298, 298, 1
- close-round-bracket, 298, 298, )
- whitespace, 298, 298, ˽
- identifier, 298, 298, if
- whitespace, 298, 298, ˽
- identifier, 298, 298, code
- property-accessor, 298, 298, .
- identifier, 298, 298, charCodeAt
- open-round-bracket, 298, 298, (
- number, 298, 298, 0
- close-round-bracket, 298, 298, )
- whitespace, 298, 298, ˽
- identifier, 298, 298, is
- whitespace, 298, 298, ˽
- identifier, 298, 298, BOM
- newline, 298, 299, \n
- whitespace, 299, 299, ˽˽
- identifier, 299, 299, code
- newline, 299, 300, \n
- newline, 300, 301, \n
- comment, 301, 301, #˽Remove˽trailing˽spaces˽(NOTE:˽Why˽exactly˽is˽this˽necessary?)
- newline, 301, 302, \n
- identifier, 302, 302, stripTrailingSpaces
- whitespace, 302, 302, ˽
- assignment, 302, 302, =
- whitespace, 302, 302, ˽
- open-round-bracket, 302, 302, (
- identifier, 302, 302, code
- close-round-bracket, 302, 302, )
- whitespace, 302, 302, ˽
- function-arrow, 302, 302, ->
- whitespace, 302, 302, ˽
- identifier, 302, 302, code
- property-accessor, 302, 302, .
- identifier, 302, 302, replace
- open-round-bracket, 302, 302, (
- identifier, 302, 302, TRAILING_SPACES
- comma, 302, 302, ,
- whitespace, 302, 302, ˽
- string-literal, 302, 302, ''
- close-round-bracket, 302, 302, )
- newline, 302, 303, \n
- newline, 303, 304, \n
- comment, 304, 304, #˽Remove˽carriage˽returns
- newline, 304, 305, \n
- identifier, 305, 305, stripCarriageReturns
- whitespace, 305, 305, ˽
- assignment, 305, 305, =
- whitespace, 305, 305, ˽
- open-round-bracket, 305, 305, (
- identifier, 305, 305, code
- close-round-bracket, 305, 305, )
- whitespace, 305, 305, ˽
- function-arrow, 305, 305, ->
- whitespace, 305, 305, ˽
- identifier, 305, 305, code
- property-accessor, 305, 305, .
- identifier, 305, 305, replace
- open-round-bracket, 305, 305, (
- regex, 305, 305, /\r/
- regex-modifier, 305, 305, g
- comma, 305, 305, ,
- whitespace, 305, 305, ˽
- string-literal, 305, 305, ''
- close-round-bracket, 305, 305, )
- newline, 305, 306, \n
- newline, 306, 307, \n
- identifier, 307, 307, clean
- whitespace, 307, 307, ˽
- assignment, 307, 307, =
- whitespace, 307, 307, ˽
- identifier, 307, 307, Sequence
- whitespace, 307, 307, ˽
- identifier, 307, 307, stripBOM
- comma, 307, 307, ,
- newline, 307, 308, \n
- whitespace, 308, 308, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 308, 308, stripTrailingSpaces
- comma, 308, 308, ,
- newline, 308, 309, \n
- whitespace, 309, 309, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 309, 309, stripCarriageReturns
- newline, 309, 310, \n
- newline, 310, 311, \n
- comment, 311, 311, #˽Utility˽function˽to˽split˽up˽a˽string˽by˽whitespaces.˽Used˽for˽all˽the
- newline, 311, 312, \n
- comment, 312, 312, #˽following˽literals.˽Similar˽to˽`%w()`˽in˽Ruby.`
- newline, 312, 313, \n
- comment, 313, 313, #
- newline, 313, 314, \n
- comment, 314, 314, #˽Takes˽a˽string˽and˽returns˽an˽array˽with˽each˽word˽as˽an˽element.
- newline, 314, 315, \n
- identifier, 315, 315, words
- whitespace, 315, 315, ˽
- assignment, 315, 315, =
- whitespace, 315, 315, ˽
- open-round-bracket, 315, 315, (
- identifier, 315, 315, string
- close-round-bracket, 315, 315, )
- whitespace, 315, 315, ˽
- function-arrow, 315, 315, ->
- whitespace, 315, 315, ˽
- identifier, 315, 315, string
- property-accessor, 315, 315, .
- identifier, 315, 315, split
- open-round-bracket, 315, 315, (
- regex, 315, 315, /\s/
- close-round-bracket, 315, 315, )
- property-accessor, 315, 315, .
- identifier, 315, 315, filter
- whitespace, 315, 315, ˽
- open-round-bracket, 315, 315, (
- identifier, 315, 315, string
- close-round-bracket, 315, 315, )
- whitespace, 315, 315, ˽
- function-arrow, 315, 315, ->
- whitespace, 315, 315, ˽
- identifier, 315, 315, string
- whitespace, 315, 315, ˽
- identifier, 315, 315, isnt
- whitespace, 315, 315, ˽
- string-literal, 315, 315, ''
- newline, 315, 316, \n
- newline, 316, 317, \n
- comment, 317, 317, #˽Make˽sure˽there˽is˽always˽a˽token˽to˽get˽initial˽location˽data˽from˽in˽all
- newline, 317, 318, \n
- comment, 318, 318, #˽other˽tokenizing˽functions.
- newline, 318, 319, \n
- comment, 319, 319, #
- newline, 319, 320, \n
- comment, 320, 320, #˽Takes˽a˽string˽and˽a˽filename,˽returns˽a˽tuple˽of˽the˽form˽`[code,˽tokens...]`
- newline, 320, 321, \n
- identifier, 321, 321, initialToken
- whitespace, 321, 321, ˽
- assignment, 321, 321, =
- whitespace, 321, 321, ˽
- open-round-bracket, 321, 321, (
- identifier, 321, 321, code
- comma, 321, 321, ,
- whitespace, 321, 321, ˽
- identifier, 321, 321, filename
- close-round-bracket, 321, 321, )
- whitespace, 321, 321, ˽
- function-arrow, 321, 321, ->
- newline, 321, 322, \n
- whitespace, 322, 322, ˽˽
- identifier, 322, 322, location
- whitespace, 322, 322, ˽
- assignment, 322, 322, =
- whitespace, 322, 322, ˽
- open-curly-bracket, 322, 322, {
- newline, 322, 323, \n
- whitespace, 323, 323, ˽˽˽˽
- identifier, 323, 323, file
- colon, 323, 323, :
- whitespace, 323, 323, ˽˽˽
- identifier, 323, 323, filename
- newline, 323, 324, \n
- whitespace, 324, 324, ˽˽˽˽
- identifier, 324, 324, index
- colon, 324, 324, :
- whitespace, 324, 324, ˽˽
- number, 324, 324, 0
- newline, 324, 325, \n
- whitespace, 325, 325, ˽˽˽˽
- identifier, 325, 325, column
- colon, 325, 325, :
- whitespace, 325, 325, ˽
- number, 325, 325, 1
- newline, 325, 326, \n
- whitespace, 326, 326, ˽˽˽˽
- identifier, 326, 326, line
- colon, 326, 326, :
- whitespace, 326, 326, ˽˽˽
- number, 326, 326, 1
- newline, 326, 327, \n
- whitespace, 327, 327, ˽˽
- close-curly-bracket, 327, 327, }
- newline, 327, 328, \n
- newline, 328, 329, \n
- whitespace, 329, 329, ˽˽
- identifier, 329, 329, token
- whitespace, 329, 329, ˽
- assignment, 329, 329, =
- whitespace, 329, 329, ˽
- identifier, 329, 329, Instance
- whitespace, 329, 329, ˽
- identifier, 329, 329, Token
- comma, 329, 329, ,
- whitespace, 329, 329, ˽
- open-curly-bracket, 329, 329, {
- newline, 329, 330, \n
- whitespace, 330, 330, ˽˽˽˽
- identifier, 330, 330, start
- colon, 330, 330, :
- whitespace, 330, 330, ˽˽
- identifier, 330, 330, Instance
- whitespace, 330, 330, ˽
- identifier, 330, 330, Location
- comma, 330, 330, ,
- whitespace, 330, 330, ˽
- identifier, 330, 330, location
- newline, 330, 331, \n
- whitespace, 331, 331, ˽˽˽˽
- identifier, 331, 331, end
- colon, 331, 331, :
- whitespace, 331, 331, ˽˽˽˽
- identifier, 331, 331, Instance
- whitespace, 331, 331, ˽
- identifier, 331, 331, Location
- comma, 331, 331, ,
- whitespace, 331, 331, ˽
- identifier, 331, 331, location
- newline, 331, 332, \n
- whitespace, 332, 332, ˽˽˽˽
- identifier, 332, 332, type
- colon, 332, 332, :
- whitespace, 332, 332, ˽˽˽
- string-literal, 332, 332, 'initial'
- newline, 332, 333, \n
- whitespace, 333, 333, ˽˽˽˽
- identifier, 333, 333, value
- colon, 333, 333, :
- whitespace, 333, 333, ˽˽
- string-literal, 333, 333, ''
- newline, 333, 334, \n
- whitespace, 334, 334, ˽˽˽˽
- identifier, 334, 334, length
- colon, 334, 334, :
- whitespace, 334, 334, ˽
- number, 334, 334, 0
- newline, 334, 335, \n
- whitespace, 335, 335, ˽˽
- close-curly-bracket, 335, 335, }
- newline, 335, 336, \n
- newline, 336, 337, \n
- whitespace, 337, 337, ˽˽
- open-curly-bracket, 337, 337, {
- whitespace, 337, 337, ˽
- identifier, 337, 337, code
- colon, 337, 337, :
- whitespace, 337, 337, ˽
- identifier, 337, 337, code
- comma, 337, 337, ,
- whitespace, 337, 337, ˽
- identifier, 337, 337, tokens
- colon, 337, 337, :
- whitespace, 337, 337, ˽
- open-square-bracket, 337, 337, [
- identifier, 337, 337, token
- close-square-bracket, 337, 337, ]
- whitespace, 337, 337, ˽
- close-curly-bracket, 337, 337, }
- newline, 337, 338, \n
- newline, 338, 339, \n
- comment, 339, 339, #˽Function˽to˽create˽start˽and˽end˽location˽objects.˽It˽is˽only˽usable˽for
- newline, 339, 340, \n
- comment, 340, 340, #˽tokens˽without˽newlines.
- newline, 340, 341, \n
- comment, 341, 341, #
- newline, 341, 342, \n
- comment, 342, 342, #˽Takes˽the˽previous˽token˽and˽the˽value˽of˽the˽current˽token˽to˽determine˽new
- newline, 342, 343, \n
- comment, 343, 343, #˽index˽and˽column˽values,˽merged˽with˽the˽previous˽token's˽end˽location.
- newline, 343, 344, \n
- identifier, 344, 344, advance
- whitespace, 344, 344, ˽
- assignment, 344, 344, =
- whitespace, 344, 344, ˽
- open-round-bracket, 344, 344, (
- identifier, 344, 344, previous
- comma, 344, 344, ,
- whitespace, 344, 344, ˽
- identifier, 344, 344, value
- close-round-bracket, 344, 344, )
- whitespace, 344, 344, ˽
- function-arrow, 344, 344, ->
- newline, 344, 345, \n
- whitespace, 345, 345, ˽˽
- identifier, 345, 345, start
- whitespace, 345, 345, ˽
- assignment, 345, 345, =
- whitespace, 345, 345, ˽
- identifier, 345, 345, previous
- property-accessor, 345, 345, .
- identifier, 345, 345, end
- newline, 345, 346, \n
- whitespace, 346, 346, ˽˽
- identifier, 346, 346, end
- whitespace, 346, 346, ˽
- assignment, 346, 346, =
- whitespace, 346, 346, ˽
- identifier, 346, 346, Instance
- whitespace, 346, 346, ˽
- identifier, 346, 346, Location
- comma, 346, 346, ,
- whitespace, 346, 346, ˽
- identifier, 346, 346, start
- comma, 346, 346, ,
- whitespace, 346, 346, ˽
- open-curly-bracket, 346, 346, {
- newline, 346, 347, \n
- whitespace, 347, 347, ˽˽˽˽
- identifier, 347, 347, column
- colon, 347, 347, :
- whitespace, 347, 347, ˽
- identifier, 347, 347, start
- property-accessor, 347, 347, .
- identifier, 347, 347, column
- whitespace, 347, 347, ˽
- math, 347, 347, +
- whitespace, 347, 347, ˽
- identifier, 347, 347, value
- property-accessor, 347, 347, .
- identifier, 347, 347, length
- newline, 347, 348, \n
- whitespace, 348, 348, ˽˽˽˽
- identifier, 348, 348, index
- colon, 348, 348, :
- whitespace, 348, 348, ˽˽
- identifier, 348, 348, start
- property-accessor, 348, 348, .
- identifier, 348, 348, index
- whitespace, 348, 348, ˽˽
- math, 348, 348, +
- whitespace, 348, 348, ˽
- identifier, 348, 348, value
- property-accessor, 348, 348, .
- identifier, 348, 348, length
- newline, 348, 349, \n
- whitespace, 349, 349, ˽˽
- close-curly-bracket, 349, 349, }
- newline, 349, 350, \n
- newline, 350, 351, \n
- whitespace, 351, 351, ˽˽
- open-square-bracket, 351, 351, [
- identifier, 351, 351, start
- comma, 351, 351, ,
- whitespace, 351, 351, ˽
- identifier, 351, 351, end
- close-square-bracket, 351, 351, ]
- newline, 351, 352, \n
- newline, 352, 353, \n
- comment, 353, 353, #˽Function˽to˽create˽start˽and˽end˽location˽objects.˽Usable˽only˽for˽tokens
- newline, 353, 354, \n
- comment, 354, 354, #˽possibly˽spanning˽over˽multiple˽lines.
- newline, 354, 355, \n
- comment, 355, 355, #
- newline, 355, 356, \n
- comment, 356, 356, #˽Takes˽the˽previous˽token˽and˽the˽end˽position˽of˽the˽current˽token.˽This˽end
- newline, 356, 357, \n
- comment, 357, 357, #˽position˽is˽usually˽gathered˽by˽`blockEndLocation`.
- newline, 357, 358, \n
- identifier, 358, 358, advanceBlock
- whitespace, 358, 358, ˽
- assignment, 358, 358, =
- whitespace, 358, 358, ˽
- open-round-bracket, 358, 358, (
- identifier, 358, 358, previous
- comma, 358, 358, ,
- whitespace, 358, 358, ˽
- open-curly-bracket, 358, 358, {
- identifier, 358, 358, index
- comma, 358, 358, ,
- whitespace, 358, 358, ˽
- identifier, 358, 358, line
- comma, 358, 358, ,
- whitespace, 358, 358, ˽
- identifier, 358, 358, column
- close-curly-bracket, 358, 358, }
- close-round-bracket, 358, 358, )
- whitespace, 358, 358, ˽
- function-arrow, 358, 358, ->
- newline, 358, 359, \n
- whitespace, 359, 359, ˽˽
- identifier, 359, 359, start
- whitespace, 359, 359, ˽
- assignment, 359, 359, =
- whitespace, 359, 359, ˽
- identifier, 359, 359, previous
- property-accessor, 359, 359, .
- identifier, 359, 359, end
- newline, 359, 360, \n
- whitespace, 360, 360, ˽˽
- identifier, 360, 360, end
- whitespace, 360, 360, ˽˽˽
- assignment, 360, 360, =
- whitespace, 360, 360, ˽
- identifier, 360, 360, Instance
- whitespace, 360, 360, ˽
- identifier, 360, 360, Location
- comma, 360, 360, ,
- whitespace, 360, 360, ˽
- identifier, 360, 360, start
- comma, 360, 360, ,
- whitespace, 360, 360, ˽
- open-curly-bracket, 360, 360, {
- newline, 360, 361, \n
- whitespace, 361, 361, ˽˽˽˽
- identifier, 361, 361, index
- colon, 361, 361, :
- whitespace, 361, 361, ˽˽
- identifier, 361, 361, start
- property-accessor, 361, 361, .
- identifier, 361, 361, index
- whitespace, 361, 361, ˽˽
- math, 361, 361, +
- whitespace, 361, 361, ˽
- identifier, 361, 361, index
- newline, 361, 362, \n
- whitespace, 362, 362, ˽˽˽˽
- identifier, 362, 362, line
- colon, 362, 362, :
- whitespace, 362, 362, ˽˽˽
- identifier, 362, 362, start
- property-accessor, 362, 362, .
- identifier, 362, 362, line
- whitespace, 362, 362, ˽˽˽
- math, 362, 362, +
- whitespace, 362, 362, ˽
- identifier, 362, 362, line
- newline, 362, 363, \n
- whitespace, 363, 363, ˽˽˽˽
- identifier, 363, 363, column
- colon, 363, 363, :
- whitespace, 363, 363, ˽
- identifier, 363, 363, start
- property-accessor, 363, 363, .
- identifier, 363, 363, column
- whitespace, 363, 363, ˽
- math, 363, 363, +
- whitespace, 363, 363, ˽
- open-round-bracket, 363, 363, (
- identifier, 363, 363, column
- whitespace, 363, 363, ˽
- math, 363, 363, -
- whitespace, 363, 363, ˽
- number, 363, 363, 1
- close-round-bracket, 363, 363, )
- newline, 363, 364, \n
- whitespace, 364, 364, ˽˽
- close-curly-bracket, 364, 364, }
- newline, 364, 365, \n
- newline, 365, 366, \n
- whitespace, 366, 366, ˽˽
- open-square-bracket, 366, 366, [
- identifier, 366, 366, start
- comma, 366, 366, ,
- whitespace, 366, 366, ˽
- identifier, 366, 366, end
- close-square-bracket, 366, 366, ]
- newline, 366, 367, \n
- newline, 367, 368, \n
- comment, 368, 368, #˽Function˽to˽calculate˽the˽end˽position˽of˽a˽value˽possibly˽spanning˽multiple
- newline, 368, 369, \n
- comment, 369, 369, #˽lines.
- newline, 369, 370, \n
- comment, 370, 370, #
- newline, 370, 371, \n
- comment, 371, 371, #˽Takes˽the˽value˽and˽uses˽a˽`reduce`˽operation˽to˽go˽through˽every˽char,
- newline, 371, 372, \n
- comment, 372, 372, #˽aggregating˽line,˽column˽and˽index˽values.˽Returns˽an˽object˽resembling˽parts
- newline, 372, 373, \n
- comment, 373, 373, #˽of˽a˽`Location`˽object.
- newline, 373, 374, \n
- identifier, 374, 374, blockEndLocation
- whitespace, 374, 374, ˽
- assignment, 374, 374, =
- whitespace, 374, 374, ˽
- open-round-bracket, 374, 374, (
- identifier, 374, 374, value
- close-round-bracket, 374, 374, )
- whitespace, 374, 374, ˽
- function-arrow, 374, 374, ->
- newline, 374, 375, \n
- whitespace, 375, 375, ˽˽
- identifier, 375, 375, countNewlines
- whitespace, 375, 375, ˽
- assignment, 375, 375, =
- whitespace, 375, 375, ˽
- open-round-bracket, 375, 375, (
- identifier, 375, 375, seed
- comma, 375, 375, ,
- whitespace, 375, 375, ˽
- identifier, 375, 375, char
- comma, 375, 375, ,
- whitespace, 375, 375, ˽
- identifier, 375, 375, index
- close-round-bracket, 375, 375, )
- whitespace, 375, 375, ˽
- function-arrow, 375, 375, ->
- newline, 375, 376, \n
- whitespace, 376, 376, ˽˽˽˽
- identifier, 376, 376, seed
- property-accessor, 376, 376, .
- identifier, 376, 376, index
- whitespace, 376, 376, ˽
- assignment, 376, 376, =
- whitespace, 376, 376, ˽
- identifier, 376, 376, index
- newline, 376, 377, \n
- newline, 377, 378, \n
- whitespace, 378, 378, ˽˽˽˽
- identifier, 378, 378, if
- whitespace, 378, 378, ˽
- identifier, 378, 378, char
- whitespace, 378, 378, ˽
- identifier, 378, 378, is
- whitespace, 378, 378, ˽
- string-literal, 378, 378, "\n"
- newline, 378, 379, \n
- whitespace, 379, 379, ˽˽˽˽˽˽
- identifier, 379, 379, seed
- property-accessor, 379, 379, .
- identifier, 379, 379, line
- whitespace, 379, 379, ˽˽
- compound-assignment, 379, 379, +=
- whitespace, 379, 379, ˽
- number, 379, 379, 1
- newline, 379, 380, \n
- whitespace, 380, 380, ˽˽˽˽˽˽
- identifier, 380, 380, seed
- property-accessor, 380, 380, .
- identifier, 380, 380, column
- whitespace, 380, 380, ˽
- assignment, 380, 380, =
- whitespace, 380, 380, ˽
- number, 380, 380, 0
- newline, 380, 381, \n
- whitespace, 381, 381, ˽˽˽˽
- identifier, 381, 381, else
- newline, 381, 382, \n
- whitespace, 382, 382, ˽˽˽˽˽˽
- identifier, 382, 382, seed
- property-accessor, 382, 382, .
- identifier, 382, 382, column
- whitespace, 382, 382, ˽
- compound-assignment, 382, 382, +=
- whitespace, 382, 382, ˽
- number, 382, 382, 1
- newline, 382, 383, \n
- newline, 383, 384, \n
- whitespace, 384, 384, ˽˽˽˽
- identifier, 384, 384, seed
- newline, 384, 385, \n
- newline, 385, 386, \n
- whitespace, 386, 386, ˽˽
- identifier, 386, 386, value
- property-accessor, 386, 386, .
- identifier, 386, 386, split
- open-round-bracket, 386, 386, (
- string-literal, 386, 386, ''
- close-round-bracket, 386, 386, )
- property-accessor, 386, 386, .
- identifier, 386, 386, reduce
- whitespace, 386, 386, ˽
- identifier, 386, 386, countNewlines
- comma, 386, 386, ,
- whitespace, 386, 386, ˽
- open-curly-bracket, 386, 386, {
- identifier, 386, 386, index
- colon, 386, 386, :
- whitespace, 386, 386, ˽
- number, 386, 386, 0
- comma, 386, 386, ,
- whitespace, 386, 386, ˽
- identifier, 386, 386, line
- colon, 386, 386, :
- whitespace, 386, 386, ˽
- number, 386, 386, 0
- comma, 386, 386, ,
- whitespace, 386, 386, ˽
- identifier, 386, 386, column
- colon, 386, 386, :
- whitespace, 386, 386, ˽
- number, 386, 386, 0
- close-curly-bracket, 386, 386, }
- comma, 386, 386, ,
- newline, 386, 387, \n
- newline, 387, 388, \n
- comment, 388, 388, #˽Consume˽characters˽in˽code˽from˽given˽startIndex˽until˽the˽passed˽condition˽is
- newline, 388, 389, \n
- comment, 389, 389, #˽met˽or˽the˽index˽falls˽out˽of˽bounds.
- newline, 389, 390, \n
- comment, 390, 390, #
- newline, 390, 391, \n
- comment, 391, 391, #˽Return˽either˽the˽index˽at˽which˽the˽condition˽was˽met˽or˽undefined˽if˽the
- newline, 391, 392, \n
- comment, 392, 392, #˽condition˽was˽not˽met˽at˽the˽end˽of˽the˽code˽string.
- newline, 392, 393, \n
- identifier, 393, 393, consume
- whitespace, 393, 393, ˽
- assignment, 393, 393, =
- whitespace, 393, 393, ˽
- open-round-bracket, 393, 393, (
- identifier, 393, 393, code
- comma, 393, 393, ,
- whitespace, 393, 393, ˽
- identifier, 393, 393, start
- comma, 393, 393, ,
- whitespace, 393, 393, ˽
- identifier, 393, 393, condition
- close-round-bracket, 393, 393, )
- whitespace, 393, 393, ˽
- function-arrow, 393, 393, ->
- newline, 393, 394, \n
- whitespace, 394, 394, ˽˽
- identifier, 394, 394, for
- whitespace, 394, 394, ˽
- identifier, 394, 394, index
- whitespace, 394, 394, ˽
- in, 394, 394, in
- whitespace, 394, 394, ˽
- open-square-bracket, 394, 394, [
- identifier, 394, 394, start
- splat-or-range, 394, 394, ..
- identifier, 394, 394, code
- property-accessor, 394, 394, .
- identifier, 394, 394, length
- whitespace, 394, 394, ˽
- math, 394, 394, -
- whitespace, 394, 394, ˽
- number, 394, 394, 1
- close-square-bracket, 394, 394, ]
- newline, 394, 395, \n
- whitespace, 395, 395, ˽˽˽˽
- identifier, 395, 395, next
- whitespace, 395, 395, ˽˽
- assignment, 395, 395, =
- whitespace, 395, 395, ˽
- identifier, 395, 395, code
- open-square-bracket, 395, 395, [
- identifier, 395, 395, index
- whitespace, 395, 395, ˽
- math, 395, 395, +
- whitespace, 395, 395, ˽
- number, 395, 395, 1
- close-square-bracket, 395, 395, ]
- whitespace, 395, 395, ˽
- identifier, 395, 395, if
- whitespace, 395, 395, ˽
- identifier, 395, 395, index
- whitespace, 395, 395, ˽
- compare, 395, 395, <=
- whitespace, 395, 395, ˽
- open-round-bracket, 395, 395, (
- identifier, 395, 395, code
- property-accessor, 395, 395, .
- identifier, 395, 395, length
- whitespace, 395, 395, ˽
- math, 395, 395, -
- whitespace, 395, 395, ˽
- identifier, 395, 395, start
- close-round-bracket, 395, 395, )
- newline, 395, 396, \n
- whitespace, 396, 396, ˽˽˽˽
- identifier, 396, 396, last
- whitespace, 396, 396, ˽˽
- assignment, 396, 396, =
- whitespace, 396, 396, ˽
- identifier, 396, 396, code
- open-square-bracket, 396, 396, [
- identifier, 396, 396, index
- close-square-bracket, 396, 396, ]
- newline, 396, 397, \n
- whitespace, 397, 397, ˽˽˽˽
- identifier, 397, 397, lastN
- whitespace, 397, 397, ˽
- assignment, 397, 397, =
- whitespace, 397, 397, ˽
- identifier, 397, 397, code
- open-square-bracket, 397, 397, [
- open-round-bracket, 397, 397, (
- identifier, 397, 397, index
- whitespace, 397, 397, ˽
- math, 397, 397, -
- whitespace, 397, 397, ˽
- identifier, 397, 397, start
- close-round-bracket, 397, 397, )
- splat-or-range, 397, 397, ..
- identifier, 397, 397, index
- close-square-bracket, 397, 397, ]
- newline, 397, 398, \n
- newline, 398, 399, \n
- whitespace, 399, 399, ˽˽˽˽
- identifier, 399, 399, return
- whitespace, 399, 399, ˽
- identifier, 399, 399, index
- whitespace, 399, 399, ˽
- identifier, 399, 399, if
- whitespace, 399, 399, ˽
- identifier, 399, 399, condition
- whitespace, 399, 399, ˽
- identifier, 399, 399, last
- comma, 399, 399, ,
- whitespace, 399, 399, ˽
- identifier, 399, 399, lastN
- comma, 399, 399, ,
- whitespace, 399, 399, ˽
- identifier, 399, 399, next
- comma, 399, 399, ,
- whitespace, 399, 399, ˽
- identifier, 399, 399, index
- comma, 399, 399, ,
- whitespace, 399, 399, ˽
- identifier, 399, 399, code
- newline, 399, 400, \n
- newline, 400, 401, \n
- whitespace, 401, 401, ˽˽
- identifier, 401, 401, return
- whitespace, 401, 401, ˽
- identifier, 401, 401, undefined
- newline, 401, 402, \n
- newline, 402, 403, \n
- comment, 403, 403, #˽Consume˽one˽character˽at˽a˽time,˽either˽into˽a˽previous˽token˽of˽type˽invalid
- newline, 403, 404, \n
- comment, 404, 404, #˽or˽into˽a˽new˽one.˽If˽consecutive˽invalid˽characters˽are˽found,˽the˽previous
- newline, 404, 405, \n
- comment, 405, 405, #˽token˽is˽updated˽with˽the˽new˽end˽position˽and˽value.
- newline, 405, 406, \n
- comment, 406, 406, #
- newline, 406, 407, \n
- comment, 407, 407, #˽This˽function˽does˽*not*˽check˽boundaries˽of˽the˽parameters.˽This˽is˽to˽be
- newline, 407, 408, \n
- comment, 408, 408, #˽done˽by˽the˽tokenize˽function.
- newline, 408, 409, \n
- identifier, 409, 409, consumeUnknown
- whitespace, 409, 409, ˽
- assignment, 409, 409, =
- whitespace, 409, 409, ˽
- open-round-bracket, 409, 409, (
- identifier, 409, 409, stream
- close-round-bracket, 409, 409, )
- whitespace, 409, 409, ˽
- function-arrow, 409, 409, ->
- newline, 409, 410, \n
- whitespace, 410, 410, ˽˽
- open-square-bracket, 410, 410, [
- splat-or-range, 410, 410, ...
- comma, 410, 410, ,
- whitespace, 410, 410, ˽
- identifier, 410, 410, previous
- close-square-bracket, 410, 410, ]
- whitespace, 410, 410, ˽
- assignment, 410, 410, =
- whitespace, 410, 410, ˽
- identifier, 410, 410, stream
- property-accessor, 410, 410, .
- identifier, 410, 410, tokens
- newline, 410, 411, \n
- newline, 411, 412, \n
- whitespace, 412, 412, ˽˽
- identifier, 412, 412, if
- whitespace, 412, 412, ˽
- identifier, 412, 412, previous
- property-accessor, 412, 412, .
- identifier, 412, 412, type
- whitespace, 412, 412, ˽
- identifier, 412, 412, is
- whitespace, 412, 412, ˽
- string-literal, 412, 412, 'unknown'
- newline, 412, 413, \n
- whitespace, 413, 413, ˽˽˽˽
- identifier, 413, 413, previous
- property-accessor, 413, 413, .
- identifier, 413, 413, end
- property-accessor, 413, 413, .
- identifier, 413, 413, index
- whitespace, 413, 413, ˽˽
- compound-assignment, 413, 413, +=
- whitespace, 413, 413, ˽
- number, 413, 413, 1
- newline, 413, 414, \n
- whitespace, 414, 414, ˽˽˽˽
- identifier, 414, 414, previous
- property-accessor, 414, 414, .
- identifier, 414, 414, end
- property-accessor, 414, 414, .
- identifier, 414, 414, column
- whitespace, 414, 414, ˽
- compound-assignment, 414, 414, +=
- whitespace, 414, 414, ˽
- number, 414, 414, 1
- newline, 414, 415, \n
- whitespace, 415, 415, ˽˽˽˽
- identifier, 415, 415, previous
- property-accessor, 415, 415, .
- identifier, 415, 415, value
- whitespace, 415, 415, ˽˽˽˽˽˽
- compound-assignment, 415, 415, +=
- whitespace, 415, 415, ˽
- identifier, 415, 415, stream
- property-accessor, 415, 415, .
- identifier, 415, 415, code
- open-square-bracket, 415, 415, [
- number, 415, 415, 0
- close-square-bracket, 415, 415, ]
- newline, 415, 416, \n
- newline, 416, 417, \n
- whitespace, 417, 417, ˽˽˽˽
- identifier, 417, 417, return
- whitespace, 417, 417, ˽
- identifier, 417, 417, Instance
- whitespace, 417, 417, ˽
- identifier, 417, 417, stream
- comma, 417, 417, ,
- whitespace, 417, 417, ˽
- open-curly-bracket, 417, 417, {
- whitespace, 417, 417, ˽
- identifier, 417, 417, code
- colon, 417, 417, :
- whitespace, 417, 417, ˽
- identifier, 417, 417, stream
- property-accessor, 417, 417, .
- identifier, 417, 417, code
- open-square-bracket, 417, 417, [
- number, 417, 417, 1
- splat-or-range, 417, 417, ..
- close-square-bracket, 417, 417, ]
- whitespace, 417, 417, ˽
- close-curly-bracket, 417, 417, }
- newline, 417, 418, \n
- newline, 418, 419, \n
- whitespace, 419, 419, ˽˽
- open-square-bracket, 419, 419, [
- identifier, 419, 419, start
- comma, 419, 419, ,
- whitespace, 419, 419, ˽
- identifier, 419, 419, end
- close-square-bracket, 419, 419, ]
- whitespace, 419, 419, ˽
- assignment, 419, 419, =
- whitespace, 419, 419, ˽
- identifier, 419, 419, advance
- whitespace, 419, 419, ˽
- identifier, 419, 419, previous
- comma, 419, 419, ,
- whitespace, 419, 419, ˽
- identifier, 419, 419, stream
- property-accessor, 419, 419, .
- identifier, 419, 419, code
- open-square-bracket, 419, 419, [
- number, 419, 419, 0
- close-square-bracket, 419, 419, ]
- newline, 419, 420, \n
- newline, 420, 421, \n
- whitespace, 421, 421, ˽˽
- identifier, 421, 421, token
- whitespace, 421, 421, ˽
- assignment, 421, 421, =
- whitespace, 421, 421, ˽
- identifier, 421, 421, Instance
- whitespace, 421, 421, ˽
- identifier, 421, 421, Token
- comma, 421, 421, ,
- whitespace, 421, 421, ˽
- identifier, 421, 421, previous
- comma, 421, 421, ,
- whitespace, 421, 421, ˽
- open-curly-bracket, 421, 421, {
- newline, 421, 422, \n
- whitespace, 422, 422, ˽˽˽˽
- identifier, 422, 422, start
- colon, 422, 422, :
- whitespace, 422, 422, ˽
- identifier, 422, 422, start
- newline, 422, 423, \n
- whitespace, 423, 423, ˽˽˽˽
- identifier, 423, 423, end
- colon, 423, 423, :
- whitespace, 423, 423, ˽˽˽
- identifier, 423, 423, end
- newline, 423, 424, \n
- whitespace, 424, 424, ˽˽˽˽
- identifier, 424, 424, type
- colon, 424, 424, :
- whitespace, 424, 424, ˽˽
- string-literal, 424, 424, 'unknown'
- newline, 424, 425, \n
- whitespace, 425, 425, ˽˽˽˽
- identifier, 425, 425, value
- colon, 425, 425, :
- whitespace, 425, 425, ˽
- identifier, 425, 425, stream
- property-accessor, 425, 425, .
- identifier, 425, 425, code
- open-square-bracket, 425, 425, [
- number, 425, 425, 0
- close-square-bracket, 425, 425, ]
- newline, 425, 426, \n
- whitespace, 426, 426, ˽˽
- close-curly-bracket, 426, 426, }
- newline, 426, 427, \n
- newline, 427, 428, \n
- whitespace, 428, 428, ˽˽
- open-curly-bracket, 428, 428, {
- newline, 428, 429, \n
- whitespace, 429, 429, ˽˽˽˽
- identifier, 429, 429, code
- colon, 429, 429, :
- whitespace, 429, 429, ˽˽˽
- identifier, 429, 429, stream
- property-accessor, 429, 429, .
- identifier, 429, 429, code
- open-square-bracket, 429, 429, [
- number, 429, 429, 1
- splat-or-range, 429, 429, ..
- close-square-bracket, 429, 429, ]
- newline, 429, 430, \n
- whitespace, 430, 430, ˽˽˽˽
- identifier, 430, 430, tokens
- colon, 430, 430, :
- whitespace, 430, 430, ˽
- open-square-bracket, 430, 430, [
- identifier, 430, 430, stream
- property-accessor, 430, 430, .
- identifier, 430, 430, tokens
- splat-or-range, 430, 430, ...
- comma, 430, 430, ,
- whitespace, 430, 430, ˽
- identifier, 430, 430, token
- close-square-bracket, 430, 430, ]
- newline, 430, 431, \n
- whitespace, 431, 431, ˽˽
- close-curly-bracket, 431, 431, }
- newline, 431, 432, \n
- newline, 432, 433, \n
- comment, 433, 433, #
- comment, 433, 433, #˽Constants
- newline, 433, 434, \n
- newline, 434, 435, \n
- identifier, 435, 435, BOM
- whitespace, 435, 435, ˽˽˽˽˽˽˽˽˽˽˽˽˽
- assignment, 435, 435, =
- whitespace, 435, 435, ˽
- number, 435, 435, 65279
- newline, 435, 436, \n
- identifier, 436, 436, TRAILING_SPACES
- whitespace, 436, 436, ˽
- assignment, 436, 436, =
- whitespace, 436, 436, ˽
- regex, 436, 436, /\s+$/
- newline, 436, 437, \n
- newline, 437, 438, \n
- identifier, 438, 438, IDENTIFIER
- whitespace, 438, 438, ˽
- assignment, 438, 438, =
- whitespace, 438, 438, ˽
- block-regex, 438, 441, ///˽^\n˽˽(?!\d)\n˽˽(˽(?:˽(?!\s)[$\w\x7f-\uffff]˽)+˽)\n///
- newline, 441, 442, \n
- newline, 442, 443, \n
- identifier, 443, 443, OPERATOR
- whitespace, 443, 443, ˽
- assignment, 443, 443, =
- whitespace, 443, 443, ˽
- block-regex, 443, 452, ///˽^˽(\n˽˽?:˽[-=]>˽˽˽˽˽˽˽˽˽˽˽˽˽#˽function\n˽˽˽|˽[-+*/%<>&|^!?=]=˽˽#˽compound˽assign˽/˽compare\n˽˽˽|˽>>>=?˽˽˽˽˽˽˽˽˽˽˽˽˽#˽zero-fill˽right˽shift\n˽˽˽|˽([-+:])\1˽˽˽˽˽˽˽˽˽#˽doubles\n˽˽˽|˽([&|<>*/%])\2=?˽˽˽#˽logic˽/˽shift˽/˽power˽/˽floor˽division˽/˽modulo\n˽˽˽|˽\?(\.|::)˽˽˽˽˽˽˽˽˽#˽soak˽access\n˽˽˽|˽\.{2,3}˽˽˽˽˽˽˽˽˽˽˽#˽range˽or˽splat\n˽˽˽|˽.˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽#˽any˽other˽character\n)˽///
- newline, 452, 453, \n
- newline, 453, 454, \n
- identifier, 454, 454, NUMBER
- whitespace, 454, 454, ˽
- assignment, 454, 454, =
- whitespace, 454, 454, ˽
- block-regex, 454, 459, ///\n˽˽^˽0b[01]+˽˽˽˽|˽˽˽˽˽˽˽˽˽˽˽˽˽˽#˽binary\n˽˽^˽0o[0-7]+˽˽˽|˽˽˽˽˽˽˽˽˽˽˽˽˽˽#˽octal\n˽˽^˽0x[\da-f]+˽|˽˽˽˽˽˽˽˽˽˽˽˽˽˽#˽hex\n˽˽^˽\d*\.?\d+˽(?:e[+-]?\d+)?˽˽#˽decimal\n///
- regex-modifier, 459, 459, i
- newline, 459, 460, \n
- newline, 460, 461, \n
- identifier, 461, 461, REGEX
- whitespace, 461, 461, ˽
- assignment, 461, 461, =
- whitespace, 461, 461, ˽
- block-regex, 461, 469, ///˽^\n˽˽/˽(?!/)˽((\n˽˽?:˽[^˽[˽/˽\n˽\\˽]˽˽#˽every˽other˽thing\n˽˽˽|˽\\[^\n]˽˽˽˽˽˽˽˽˽#˽anything˽but˽newlines˽escaped\n˽˽˽|˽\[˽˽˽˽˽˽˽˽˽˽˽˽˽˽#˽character˽class\n˽˽˽˽˽˽˽(?:˽\\[^\n]˽|˽[^˽\]˽\n˽\\˽]˽)*\n˽˽˽˽˽\]\n˽˽)*)˽(/)?\n///
- newline, 469, 470, \n
- newline, 470, 471, \n
- identifier, 471, 471, REGEX_MODIFIER
- whitespace, 471, 471, ˽
- assignment, 471, 471, =
- whitespace, 471, 471, ˽
- regex, 471, 471, /^[imgy]+/
- newline, 471, 472, \n
- newline, 472, 473, \n
- identifier, 473, 473, FUNCTION
- whitespace, 473, 473, ˽
- assignment, 473, 473, =
- whitespace, 473, 473, ˽
- regex, 473, 473, /^[-=]>/
- newline, 473, 474, \n
- identifier, 474, 474, COMMA
- whitespace, 474, 474, ˽
- assignment, 474, 474, =
- whitespace, 474, 474, ˽
- regex, 474, 474, /^,/
- newline, 474, 475, \n
- newline, 475, 476, \n
- comment, 476, 476, #˽Unary˽tokens
- newline, 476, 477, \n
- identifier, 477, 477, UNARY
- whitespace, 477, 477, ˽
- assignment, 477, 477, =
- whitespace, 477, 477, ˽
- identifier, 477, 477, words
- whitespace, 477, 477, ˽
- string-literal, 477, 477, 'new˽typeof˽delete˽do'
- newline, 477, 478, \n
- identifier, 478, 478, UNARY_MATH
- whitespace, 478, 478, ˽˽
- assignment, 478, 478, =
- whitespace, 478, 478, ˽
- identifier, 478, 478, words
- whitespace, 478, 478, ˽
- string-literal, 478, 478, '!˽~˽not'
- newline, 478, 479, \n
- newline, 479, 480, \n
- comment, 480, 480, #˽Logical˽tokens
- newline, 480, 481, \n
- identifier, 481, 481, LOGIC
- whitespace, 481, 481, ˽
- assignment, 481, 481, =
- whitespace, 481, 481, ˽
- identifier, 481, 481, words
- whitespace, 481, 481, ˽
- string-literal, 481, 481, '&&˽||˽&˽|˽^'
- newline, 481, 482, \n
- newline, 482, 483, \n
- comment, 483, 483, #˽Bit-shifting˽tokens
- newline, 483, 484, \n
- identifier, 484, 484, SHIFT
- whitespace, 484, 484, ˽
- assignment, 484, 484, =
- whitespace, 484, 484, ˽
- identifier, 484, 484, words
- whitespace, 484, 484, ˽
- string-literal, 484, 484, '<<˽>>˽>>>'
- newline, 484, 485, \n
- newline, 485, 486, \n
- comment, 486, 486, #˽Comparison˽tokens
- newline, 486, 487, \n
- identifier, 487, 487, COMPARE
- whitespace, 487, 487, ˽
- assignment, 487, 487, =
- whitespace, 487, 487, ˽
- identifier, 487, 487, words
- whitespace, 487, 487, ˽
- string-literal, 487, 487, '==˽!=˽<˽>˽<=˽>='
- newline, 487, 488, \n
- newline, 488, 489, \n
- comment, 489, 489, #˽Mathematical˽tokens
- newline, 489, 490, \n
- identifier, 490, 490, MATH
- whitespace, 490, 490, ˽
- assignment, 490, 490, =
- whitespace, 490, 490, ˽
- identifier, 490, 490, words
- whitespace, 490, 490, ˽
- string-literal, 490, 490, '+˽-˽*˽/˽%˽//˽%%'
- newline, 490, 491, \n
- newline, 491, 492, \n
- comment, 492, 492, #˽Relational˽tokens˽that˽are˽negatable˽with˽the˽unary˽not˽token
- newline, 492, 493, \n
- identifier, 493, 493, RELATION
- whitespace, 493, 493, ˽
- assignment, 493, 493, =
- whitespace, 493, 493, ˽
- identifier, 493, 493, words
- whitespace, 493, 493, ˽
- string-literal, 493, 493, 'in˽of˽instanceof'
- newline, 493, 494, \n
- newline, 494, 495, \n
- comment, 495, 495, #˽Boolean˽tokens
- newline, 495, 496, \n
- identifier, 496, 496, BOOL
- whitespace, 496, 496, ˽
- assignment, 496, 496, =
- whitespace, 496, 496, ˽
- identifier, 496, 496, words
- whitespace, 496, 496, ˽
- string-literal, 496, 496, 'true˽false˽yes˽no'
- newline, 496, 497, \n
- newline, 497, 498, \n
- identifier, 498, 498, COMMENT
- whitespace, 498, 498, ˽
- assignment, 498, 498, =
- whitespace, 498, 498, ˽
- regex, 498, 498, /^#[^#\n]*/
- newline, 498, 499, \n
- identifier, 499, 499, BLOCK_COMMENT
- whitespace, 499, 499, ˽
- assignment, 499, 499, =
- whitespace, 499, 499, ˽
- regex, 499, 499, /^###.*###$/
- newline, 499, 500, \n
- newline, 500, 501, \n
- identifier, 501, 501, INLINE_STRING_QUOTES
- whitespace, 501, 501, ˽˽˽˽˽˽˽˽˽
- assignment, 501, 501, =
- whitespace, 501, 501, ˽
- open-square-bracket, 501, 501, [
- string-literal, 501, 501, '"'
- comma, 501, 501, ,
- whitespace, 501, 501, ˽
- string-literal, 501, 501, "'"
- close-square-bracket, 501, 501, ]
- newline, 501, 502, \n
- identifier, 502, 502, INLINE_STRING_ESCAPED_QUOTES
- whitespace, 502, 502, ˽
- assignment, 502, 502, =
- whitespace, 502, 502, ˽
- open-square-bracket, 502, 502, [
- string-literal, 502, 502, '\\"'
- comma, 502, 502, ,
- whitespace, 502, 502, ˽
- string-literal, 502, 502, "\\'"
- close-square-bracket, 502, 502, ]
- newline, 502, 503, \n
- identifier, 503, 503, BLOCK_STRING
- whitespace, 503, 503, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- assignment, 503, 503, =
- whitespace, 503, 503, ˽
- open-square-bracket, 503, 503, [
- string-literal, 503, 503, '"""'
- comma, 503, 503, ,
- whitespace, 503, 503, ˽
- string-literal, 503, 503, "'''"
- close-square-bracket, 503, 503, ]
- newline, 503, 504, \n
- newline, 504, 505, \n
- newline, 505, 506, \n
- identifier, 506, 506, STATEMENTS
- whitespace, 506, 506, ˽
- assignment, 506, 506, =
- whitespace, 506, 506, ˽
- identifier, 506, 506, words
- whitespace, 506, 506, ˽
- string-literal, 506, 506, 'break˽continue˽debugger'
- newline, 506, 507, \n
- newline, 507, 508, \n
- identifier, 508, 508, COMPOUND_ASSIGN
- whitespace, 508, 508, ˽
- assignment, 508, 508, =
- whitespace, 508, 508, ˽
- identifier, 508, 508, words
- whitespace, 508, 508, ˽
- suppress-newline, 508, 508, \
- newline, 508, 509, \n
- whitespace, 509, 509, ˽˽
- string-literal, 509, 509, '-=˽+=˽/=˽*=˽%=˽||=˽&&=˽?=˽<<=˽>>=˽>>>=˽&=˽^=˽|=˽**=˽//=˽%%='
- newline, 509, 510, \n
- newline, 510, 511, \n
- identifier, 511, 511, ACCESSOR_TYPE
- whitespace, 511, 511, ˽
- assignment, 511, 511, =
- whitespace, 511, 511, ˽
- open-curly-bracket, 511, 511, {
- newline, 511, 512, \n
- whitespace, 512, 512, ˽˽
- string-literal, 512, 512, '.'
- colon, 512, 512, :
- whitespace, 512, 512, ˽˽
- string-literal, 512, 512, 'property-accessor'
- newline, 512, 513, \n
- whitespace, 513, 513, ˽˽
- string-literal, 513, 513, '@'
- colon, 513, 513, :
- whitespace, 513, 513, ˽˽
- string-literal, 513, 513, 'this-accessor'
- newline, 513, 514, \n
- whitespace, 514, 514, ˽˽
- string-literal, 514, 514, '::'
- colon, 514, 514, :
- whitespace, 514, 514, ˽
- string-literal, 514, 514, 'prototype-accessor'
- newline, 514, 515, \n
- close-curly-bracket, 515, 515, }
- newline, 515, 516, \n
- newline, 516, 517, \n
- identifier, 517, 517, BRACKET_TYPE
- whitespace, 517, 517, ˽
- assignment, 517, 517, =
- whitespace, 517, 517, ˽
- open-curly-bracket, 517, 517, {
- newline, 517, 518, \n
- whitespace, 518, 518, ˽˽
- string-literal, 518, 518, '('
- colon, 518, 518, :
- whitespace, 518, 518, ˽
- string-literal, 518, 518, 'open-round-bracket'
- newline, 518, 519, \n
- whitespace, 519, 519, ˽˽
- string-literal, 519, 519, ')'
- colon, 519, 519, :
- whitespace, 519, 519, ˽
- string-literal, 519, 519, 'close-round-bracket'
- newline, 519, 520, \n
- whitespace, 520, 520, ˽˽
- string-literal, 520, 520, '['
- colon, 520, 520, :
- whitespace, 520, 520, ˽
- string-literal, 520, 520, 'open-square-bracket'
- newline, 520, 521, \n
- whitespace, 521, 521, ˽˽
- string-literal, 521, 521, ']'
- colon, 521, 521, :
- whitespace, 521, 521, ˽
- string-literal, 521, 521, 'close-square-bracket'
- newline, 521, 522, \n
- whitespace, 522, 522, ˽˽
- string-literal, 522, 522, '{'
- colon, 522, 522, :
- whitespace, 522, 522, ˽
- string-literal, 522, 522, 'open-curly-bracket'
- newline, 522, 523, \n
- whitespace, 523, 523, ˽˽
- string-literal, 523, 523, '}'
- colon, 523, 523, :
- whitespace, 523, 523, ˽
- string-literal, 523, 523, 'close-curly-bracket'
- newline, 523, 524, \n
- close-curly-bracket, 524, 524, }
- newline, 524, 525, \n
- newline, 525, 526, \n
- identifier, 526, 526, RANGES
- whitespace, 526, 526, ˽
- assignment, 526, 526, =
- whitespace, 526, 526, ˽
- open-curly-bracket, 526, 526, {
- newline, 526, 527, \n
- whitespace, 527, 527, ˽˽
- string-literal, 527, 527, '..'
- colon, 527, 527, :
- whitespace, 527, 527, ˽˽
- string-literal, 527, 527, 'range-exclusive'
- newline, 527, 528, \n
- whitespace, 528, 528, ˽˽
- string-literal, 528, 528, '...'
- colon, 528, 528, :
- whitespace, 528, 528, ˽
- string-literal, 528, 528, 'range-inclusive'
- newline, 528, 529, \n
- close-curly-bracket, 529, 529, }
- newline, 529, 530, \n
- newline, 530, 531, \n
- identifier, 531, 531, SPLAT
- whitespace, 531, 531, ˽
- assignment, 531, 531, =
- whitespace, 531, 531, ˽
- string-literal, 531, 531, '...'
- newline, 531, 532, \n
- newline, 532, 533, \n
- identifier, 533, 533, WHITESPACE
- whitespace, 533, 533, ˽
- assignment, 533, 533, =
- whitespace, 533, 533, ˽
- regex, 533, 533, /^[^\n\S]+/
- newline, 533, 534, \n
- newline, 534, 535, \n
- identifier, 535, 535, identifiers
- whitespace, 535, 535, ˽˽˽
- assignment, 535, 535, =
- whitespace, 535, 535, ˽
- identifier, 535, 535, Tokenizer
- whitespace, 535, 535, ˽
- identifier, 535, 535, identifierType
- comma, 535, 535, ,
- whitespace, 535, 535, ˽˽˽
- identifier, 535, 535, IDENTIFIER
- newline, 535, 536, \n
- identifier, 536, 536, operators
- whitespace, 536, 536, ˽˽˽˽˽
- assignment, 536, 536, =
- whitespace, 536, 536, ˽
- identifier, 536, 536, Tokenizer
- whitespace, 536, 536, ˽
- identifier, 536, 536, operatorType
- comma, 536, 536, ,
- whitespace, 536, 536, ˽˽˽˽˽
- identifier, 536, 536, OPERATOR
- newline, 536, 537, \n
- identifier, 537, 537, comments
- whitespace, 537, 537, ˽˽˽˽˽˽
- assignment, 537, 537, =
- whitespace, 537, 537, ˽
- identifier, 537, 537, Tokenizer
- whitespace, 537, 537, ˽
- string-literal, 537, 537, 'comment'
- comma, 537, 537, ,
- whitespace, 537, 537, ˽˽˽˽˽˽˽˽
- identifier, 537, 537, COMMENT
- newline, 537, 538, \n
- identifier, 538, 538, numbers
- whitespace, 538, 538, ˽˽˽˽˽˽˽
- assignment, 538, 538, =
- whitespace, 538, 538, ˽
- identifier, 538, 538, Tokenizer
- whitespace, 538, 538, ˽
- string-literal, 538, 538, 'number'
- comma, 538, 538, ,
- whitespace, 538, 538, ˽˽˽˽˽˽˽˽˽
- identifier, 538, 538, NUMBER
- newline, 538, 539, \n
- identifier, 539, 539, whitespaces
- whitespace, 539, 539, ˽˽˽
- assignment, 539, 539, =
- whitespace, 539, 539, ˽
- identifier, 539, 539, Tokenizer
- whitespace, 539, 539, ˽
- string-literal, 539, 539, 'whitespace'
- comma, 539, 539, ,
- whitespace, 539, 539, ˽˽˽˽˽
- identifier, 539, 539, WHITESPACE
- newline, 539, 540, \n
- identifier, 540, 540, regexModifier
- whitespace, 540, 540, ˽
- assignment, 540, 540, =
- whitespace, 540, 540, ˽
- identifier, 540, 540, Tokenizer
- whitespace, 540, 540, ˽
- string-literal, 540, 540, 'regex-modifier'
- comma, 540, 540, ,
- whitespace, 540, 540, ˽
- identifier, 540, 540, REGEX_MODIFIER
- newline, 540, 541, \n
- identifier, 541, 541, commas
- whitespace, 541, 541, ˽˽˽˽˽˽˽˽
- assignment, 541, 541, =
- whitespace, 541, 541, ˽
- identifier, 541, 541, Tokenizer
- whitespace, 541, 541, ˽
- string-literal, 541, 541, 'comma'
- comma, 541, 541, ,
- whitespace, 541, 541, ˽˽˽˽˽˽˽˽˽˽
- identifier, 541, 541, COMMA
- newline, 541, 542, \n
- identifier, 542, 542, functions
- whitespace, 542, 542, ˽˽˽˽˽
- assignment, 542, 542, =
- whitespace, 542, 542, ˽
- identifier, 542, 542, Tokenizer
- whitespace, 542, 542, ˽
- string-literal, 542, 542, 'function-arrow'
- comma, 542, 542, ,
- whitespace, 542, 542, ˽
- identifier, 542, 542, FUNCTION
- newline, 542, 543, \n
- newline, 543, 544, \n
- identifier, 544, 544, blockComments
- whitespace, 544, 544, ˽
- assignment, 544, 544, =
- whitespace, 544, 544, ˽
- suppress-newline, 544, 544, \
- newline, 544, 545, \n
- whitespace, 545, 545, ˽˽
- identifier, 545, 545, BlockTokenizer
- whitespace, 545, 545, ˽
- string-literal, 545, 545, 'multi-line-comment'
- comma, 545, 545, ,
- newline, 545, 546, \n
- whitespace, 546, 546, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- number, 546, 546, 3
- comma, 546, 546, ,
- newline, 546, 547, \n
- whitespace, 547, 547, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 547, 547, (
- open-round-bracket, 547, 547, (
- identifier, 547, 547, _
- comma, 547, 547, ,
- whitespace, 547, 547, ˽
- identifier, 547, 547, __
- comma, 547, 547, ,
- whitespace, 547, 547, ˽
- identifier, 547, 547, next
- comma, 547, 547, ,
- whitespace, 547, 547, ˽
- identifier, 547, 547, index
- comma, 547, 547, ,
- whitespace, 547, 547, ˽
- identifier, 547, 547, code
- close-round-bracket, 547, 547, )
- whitespace, 547, 547, ˽
- function-arrow, 547, 547, ->
- whitespace, 547, 547, ˽
- suppress-newline, 547, 547, \
- newline, 547, 548, \n
- whitespace, 548, 548, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 548, 548, code
- open-square-bracket, 548, 548, [
- identifier, 548, 548, index
- whitespace, 548, 548, ˽
- math, 548, 548, -
- whitespace, 548, 548, ˽
- number, 548, 548, 2
- splat-or-range, 548, 548, ..
- identifier, 548, 548, index
- close-square-bracket, 548, 548, ]
- whitespace, 548, 548, ˽
- identifier, 548, 548, is
- whitespace, 548, 548, ˽
- string-literal, 548, 548, '###'
- whitespace, 548, 548, ˽
- identifier, 548, 548, and
- whitespace, 548, 548, ˽
- identifier, 548, 548, next
- whitespace, 548, 548, ˽
- identifier, 548, 548, isnt
- whitespace, 548, 548, ˽
- string-literal, 548, 548, '#'
- close-round-bracket, 548, 548, )
- comma, 548, 548, ,
- newline, 548, 549, \n
- whitespace, 549, 549, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 549, 549, (
- open-round-bracket, 549, 549, (
- identifier, 549, 549, stream
- close-round-bracket, 549, 549, )
- whitespace, 549, 549, ˽
- function-arrow, 549, 549, ->
- whitespace, 549, 549, ˽
- identifier, 549, 549, stream
- property-accessor, 549, 549, .
- identifier, 549, 549, code
- open-square-bracket, 549, 549, [
- splat-or-range, 549, 549, ..
- number, 549, 549, 2
- close-square-bracket, 549, 549, ]
- whitespace, 549, 549, ˽
- identifier, 549, 549, is
- whitespace, 549, 549, ˽
- string-literal, 549, 549, '###'
- close-round-bracket, 549, 549, )
- newline, 549, 550, \n
- newline, 550, 551, \n
- identifier, 551, 551, javascript
- whitespace, 551, 551, ˽
- assignment, 551, 551, =
- whitespace, 551, 551, ˽
- suppress-newline, 551, 551, \
- newline, 551, 552, \n
- whitespace, 552, 552, ˽˽
- identifier, 552, 552, BlockTokenizer
- whitespace, 552, 552, ˽
- string-literal, 552, 552, 'javascript'
- comma, 552, 552, ,
- newline, 552, 553, \n
- whitespace, 553, 553, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- number, 553, 553, 1
- comma, 553, 553, ,
- newline, 553, 554, \n
- whitespace, 554, 554, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 554, 554, (
- open-round-bracket, 554, 554, (
- identifier, 554, 554, last
- comma, 554, 554, ,
- whitespace, 554, 554, ˽
- identifier, 554, 554, lastN
- close-round-bracket, 554, 554, )
- whitespace, 554, 554, ˽
- function-arrow, 554, 554, ->
- whitespace, 554, 554, ˽
- identifier, 554, 554, last
- whitespace, 554, 554, ˽
- identifier, 554, 554, is
- whitespace, 554, 554, ˽
- string-literal, 554, 554, '`'
- whitespace, 554, 554, ˽
- identifier, 554, 554, and
- whitespace, 554, 554, ˽
- identifier, 554, 554, lastN
- whitespace, 554, 554, ˽
- identifier, 554, 554, isnt
- whitespace, 554, 554, ˽
- string-literal, 554, 554, '\\`'
- close-round-bracket, 554, 554, )
- comma, 554, 554, ,
- newline, 554, 555, \n
- whitespace, 555, 555, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 555, 555, (
- open-round-bracket, 555, 555, (
- identifier, 555, 555, stream
- close-round-bracket, 555, 555, )
- whitespace, 555, 555, ˽
- function-arrow, 555, 555, ->
- whitespace, 555, 555, ˽
- identifier, 555, 555, stream
- property-accessor, 555, 555, .
- identifier, 555, 555, code
- open-square-bracket, 555, 555, [
- number, 555, 555, 0
- close-square-bracket, 555, 555, ]
- whitespace, 555, 555, ˽
- identifier, 555, 555, is
- whitespace, 555, 555, ˽
- string-literal, 555, 555, '`'
- close-round-bracket, 555, 555, )
- newline, 555, 556, \n
- newline, 556, 557, \n
- identifier, 557, 557, regexConsumer
- whitespace, 557, 557, ˽
- assignment, 557, 557, =
- whitespace, 557, 557, ˽
- open-round-bracket, 557, 557, (
- identifier, 557, 557, last
- comma, 557, 557, ,
- whitespace, 557, 557, ˽
- identifier, 557, 557, lastN
- comma, 557, 557, ,
- whitespace, 557, 557, ˽
- identifier, 557, 557, _
- comma, 557, 557, ,
- whitespace, 557, 557, ˽
- identifier, 557, 557, index
- comma, 557, 557, ,
- whitespace, 557, 557, ˽
- identifier, 557, 557, code
- close-round-bracket, 557, 557, )
- whitespace, 557, 557, ˽
- function-arrow, 557, 557, ->
- newline, 557, 558, \n
- whitespace, 558, 558, ˽˽
- identifier, 558, 558, last
- whitespace, 558, 558, ˽
- identifier, 558, 558, is
- whitespace, 558, 558, ˽
- string-literal, 558, 558, '/'
- whitespace, 558, 558, ˽
- identifier, 558, 558, and
- newline, 558, 559, \n
- whitespace, 559, 559, ˽˽
- open-round-bracket, 559, 559, (
- identifier, 559, 559, lastN
- whitespace, 559, 559, ˽
- identifier, 559, 559, isnt
- whitespace, 559, 559, ˽
- string-literal, 559, 559, '\\/'
- whitespace, 559, 559, ˽
- identifier, 559, 559, or
- whitespace, 559, 559, ˽
- identifier, 559, 559, code
- open-square-bracket, 559, 559, [
- identifier, 559, 559, index
- whitespace, 559, 559, ˽
- math, 559, 559, -
- whitespace, 559, 559, ˽
- number, 559, 559, 2
- splat-or-range, 559, 559, ..
- identifier, 559, 559, index
- whitespace, 559, 559, ˽
- math, 559, 559, -
- whitespace, 559, 559, ˽
- number, 559, 559, 1
- close-square-bracket, 559, 559, ]
- whitespace, 559, 559, ˽
- identifier, 559, 559, is
- whitespace, 559, 559, ˽
- string-literal, 559, 559, '\\\\/'
- close-round-bracket, 559, 559, )
- newline, 559, 560, \n
- newline, 560, 561, \n
- identifier, 561, 561, regexNoModifier
- whitespace, 561, 561, ˽
- assignment, 561, 561, =
- whitespace, 561, 561, ˽
- identifier, 561, 561, BlockTokenizer
- whitespace, 561, 561, ˽
- suppress-newline, 561, 561, \
- newline, 561, 562, \n
- whitespace, 562, 562, ˽˽
- string-literal, 562, 562, 'regex'
- comma, 562, 562, ,
- newline, 562, 563, \n
- whitespace, 563, 563, ˽˽
- number, 563, 563, 1
- comma, 563, 563, ,
- newline, 563, 564, \n
- whitespace, 564, 564, ˽˽
- identifier, 564, 564, regexConsumer
- comma, 564, 564, ,
- newline, 564, 565, \n
- whitespace, 565, 565, ˽˽
- open-round-bracket, 565, 565, (
- open-round-bracket, 565, 565, (
- identifier, 565, 565, stream
- close-round-bracket, 565, 565, )
- whitespace, 565, 565, ˽
- function-arrow, 565, 565, ->
- whitespace, 565, 565, ˽
- open-round-bracket, 565, 565, (
- identifier, 565, 565, REGEX
- property-accessor, 565, 565, .
- identifier, 565, 565, exec
- whitespace, 565, 565, ˽
- identifier, 565, 565, stream
- property-accessor, 565, 565, .
- identifier, 565, 565, code
- close-round-bracket, 565, 565, )
- existential, 565, 565, ?
- whitespace, 565, 565, ˽
- close-round-bracket, 565, 565, )
- newline, 565, 566, \n
- newline, 566, 567, \n
- identifier, 567, 567, blockRegexConsumer
- whitespace, 567, 567, ˽
- assignment, 567, 567, =
- whitespace, 567, 567, ˽
- open-round-bracket, 567, 567, (
- identifier, 567, 567, _
- comma, 567, 567, ,
- whitespace, 567, 567, ˽
- identifier, 567, 567, ___
- comma, 567, 567, ,
- whitespace, 567, 567, ˽
- identifier, 567, 567, next
- comma, 567, 567, ,
- whitespace, 567, 567, ˽
- identifier, 567, 567, index
- comma, 567, 567, ,
- whitespace, 567, 567, ˽
- identifier, 567, 567, code
- close-round-bracket, 567, 567, )
- whitespace, 567, 567, ˽
- function-arrow, 567, 567, ->
- newline, 567, 568, \n
- whitespace, 568, 568, ˽˽
- identifier, 568, 568, code
- open-square-bracket, 568, 568, [
- identifier, 568, 568, index
- whitespace, 568, 568, ˽
- math, 568, 568, -
- whitespace, 568, 568, ˽
- number, 568, 568, 2
- splat-or-range, 568, 568, ..
- identifier, 568, 568, index
- close-square-bracket, 568, 568, ]
- whitespace, 568, 568, ˽
- identifier, 568, 568, is
- whitespace, 568, 568, ˽
- string-literal, 568, 568, '///'
- newline, 568, 569, \n
- newline, 569, 570, \n
- identifier, 570, 570, blockRegexNoModifier
- whitespace, 570, 570, ˽
- assignment, 570, 570, =
- whitespace, 570, 570, ˽
- suppress-newline, 570, 570, \
- newline, 570, 571, \n
- whitespace, 571, 571, ˽˽
- identifier, 571, 571, BlockTokenizer
- whitespace, 571, 571, ˽
- string-literal, 571, 571, 'block-regex'
- comma, 571, 571, ,
- newline, 571, 572, \n
- whitespace, 572, 572, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- number, 572, 572, 3
- comma, 572, 572, ,
- newline, 572, 573, \n
- whitespace, 573, 573, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- identifier, 573, 573, blockRegexConsumer
- comma, 573, 573, ,
- newline, 573, 574, \n
- whitespace, 574, 574, ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽
- open-round-bracket, 574, 574, (
- open-round-bracket, 574, 574, (
- identifier, 574, 574, stream
- close-round-bracket, 574, 574, )
- whitespace, 574, 574, ˽
- function-arrow, 574, 574, ->
- whitespace, 574, 574, ˽
- identifier, 574, 574, stream
- property-accessor, 574, 574, .
- identifier, 574, 574, code
- open-square-bracket, 574, 574, [
- splat-or-range, 574, 574, ..
- number, 574, 574, 2
- close-square-bracket, 574, 574, ]
- whitespace, 574, 574, ˽
- identifier, 574, 574, is
- whitespace, 574, 574, ˽
- string-literal, 574, 574, '///'
- close-round-bracket, 574, 574, )
- newline, 574, 575, \n
- newline, 575, 576, \n
- identifier, 576, 576, regex
- whitespace, 576, 576, ˽˽˽˽˽˽
- assignment, 576, 576, =
- whitespace, 576, 576, ˽
- open-round-bracket, 576, 576, (
- identifier, 576, 576, stream
- close-round-bracket, 576, 576, )
- whitespace, 576, 576, ˽
- function-arrow, 576, 576, ->
- whitespace, 576, 576, ˽
- identifier, 576, 576, regexModifier
- whitespace, 576, 576, ˽
- identifier, 576, 576, regexNoModifier
- whitespace, 576, 576, ˽
- identifier, 576, 576, stream
- newline, 576, 577, \n
- identifier, 577, 577, blockRegex
- whitespace, 577, 577, ˽
- assignment, 577, 577, =
- whitespace, 577, 577, ˽
- open-round-bracket, 577, 577, (
- identifier, 577, 577, stream
- close-round-bracket, 577, 577, )
- whitespace, 577, 577, ˽
- function-arrow, 577, 577, ->
- whitespace, 577, 577, ˽
- identifier, 577, 577, regexModifier
- whitespace, 577, 577, ˽
- identifier, 577, 577, blockRegexNoModifier
- whitespace, 577, 577, ˽
- identifier, 577, 577, stream
- newline, 577, 578, \n
- newline, 578, 579, \n
- comment, 579, 579, #˽Main˽entry˽point˽for˽the˽lexer
- newline, 579, 580, \n
- comment, 580, 580, #
- newline, 580, 581, \n
- comment, 581, 581, #˽Takes˽a˽string˽and˽an˽optional˽filename,˽returns˽an˽array˽of˽token˽objects.
- newline, 581, 582, \n
- identifier, 582, 582, lexer
- whitespace, 582, 582, ˽
- assignment, 582, 582, =
- whitespace, 582, 582, ˽
- open-round-bracket, 582, 582, (
- identifier, 582, 582, code
- comma, 582, 582, ,
- whitespace, 582, 582, ˽
- identifier, 582, 582, filename
- close-round-bracket, 582, 582, )
- whitespace, 582, 582, ˽
- function-arrow, 582, 582, ->
- newline, 582, 583, \n
- whitespace, 583, 583, ˽˽
- identifier, 583, 583, stream
- whitespace, 583, 583, ˽
- assignment, 583, 583, =
- whitespace, 583, 583, ˽
- identifier, 583, 583, tokenize
- whitespace, 583, 583, ˽
- identifier, 583, 583, initialToken
- whitespace, 583, 583, ˽
- identifier, 583, 583, code
- comma, 583, 583, ,
- whitespace, 583, 583, ˽
- identifier, 583, 583, filename
- newline, 583, 584, \n
- whitespace, 584, 584, ˽˽
- identifier, 584, 584, stream
- property-accessor, 584, 584, .
- identifier, 584, 584, tokens
- newline, 584, 585, \n
- newline, 585, 586, \n
- comment, 586, 586, #˽Turn˽code˽and˽a˽stream˽of˽tokens˽into˽a˽stream˽of˽tokens˽recursively
- newline, 586, 587, \n
- comment, 587, 587, #˽tokenizing˽the˽string.
- newline, 587, 588, \n
- comment, 588, 588, #
- newline, 588, 589, \n
- comment, 589, 589, #˽This˽function˽will˽call˽all˽tokenize˽functions˽in˽specific˽order˽and˽then
- newline, 589, 590, \n
- comment, 590, 590, #˽itself˽until˽no˽more˽code˽is˽available˽or˽a˽complete˽lexing˽pass˽has˽not
- newline, 590, 591, \n
- comment, 591, 591, #˽changed˽the˽string˽to˽analyse.
- newline, 591, 592, \n
- identifier, 592, 592, tokenize
- whitespace, 592, 592, ˽
- assignment, 592, 592, =
- whitespace, 592, 592, ˽
- open-round-bracket, 592, 592, (
- identifier, 592, 592, stream
- close-round-bracket, 592, 592, )
- whitespace, 592, 592, ˽
- function-arrow, 592, 592, ->
- newline, 592, 593, \n
- whitespace, 593, 593, ˽˽
- identifier, 593, 593, newStream
- whitespace, 593, 593, ˽
- assignment, 593, 593, =
- whitespace, 593, 593, ˽
- identifier, 593, 593, stream
- newline, 593, 594, \n
- newline, 594, 595, \n
- whitespace, 595, 595, ˽˽
- identifier, 595, 595, while
- whitespace, 595, 595, ˽
- identifier, 595, 595, newStream
- property-accessor, 595, 595, .
- identifier, 595, 595, code
- property-accessor, 595, 595, .
- identifier, 595, 595, length
- newline, 595, 596, \n
- whitespace, 596, 596, ˽˽˽˽
- open-square-bracket, 596, 596, [
- splat-or-range, 596, 596, ...
- comma, 596, 596, ,
- whitespace, 596, 596, ˽
- identifier, 596, 596, last
- close-square-bracket, 596, 596, ]
- whitespace, 596, 596, ˽
- assignment, 596, 596, =
- whitespace, 596, 596, ˽
- identifier, 596, 596, stream
- property-accessor, 596, 596, .
- identifier, 596, 596, tokens
- newline, 596, 597, \n
- whitespace, 597, 597, ˽˽˽˽
- identifier, 597, 597, oldStream
- whitespace, 597, 597, ˽
- assignment, 597, 597, =
- whitespace, 597, 597, ˽
- identifier, 597, 597, newStream
- newline, 597, 598, \n
- newline, 598, 599, \n
- whitespace, 599, 599, ˽˽˽˽
- comment, 599, 599, #˽This˽is˽a˽hack.˽But˽it˽does˽work˽for˽now.
- newline, 599, 600, \n
- whitespace, 600, 600, ˽˽˽˽
- identifier, 600, 600, newStream
- whitespace, 600, 600, ˽
- assignment, 600, 600, =
- whitespace, 600, 600, ˽
- identifier, 600, 600, identifiers
- whitespace, 600, 600, ˽
- identifier, 600, 600, oldStream
- terminator, 600, 600, ;
- whitespace, 600, 600, ˽˽˽
- statement, 600, 600, continue
- whitespace, 600, 600, ˽
- identifier, 600, 600, if
- whitespace, 600, 600, ˽
- identifier, 600, 600, newStream
- whitespace, 600, 600, ˽
- identifier, 600, 600, isnt
- whitespace, 600, 600, ˽
- identifier, 600, 600, oldStream
- newline, 600, 601, \n
- whitespace, 601, 601, ˽˽˽˽
- identifier, 601, 601, newStream
- whitespace, 601, 601, ˽
- assignment, 601, 601, =
- whitespace, 601, 601, ˽
- identifier, 601, 601, blockComments
- whitespace, 601, 601, ˽
- identifier, 601, 601, newStream
- terminator, 601, 601, ;
- whitespace, 601, 601, ˽
- statement, 601, 601, continue
- whitespace, 601, 601, ˽
- identifier, 601, 601, if
- whitespace, 601, 601, ˽
- identifier, 601, 601, newStream
- whitespace, 601, 601, ˽
- identifier, 601, 601, isnt
- whitespace, 601, 601, ˽
- identifier, 601, 601, oldStream
- newline, 601, 602, \n
- whitespace, 602, 602, ˽˽˽˽
- identifier, 602, 602, newStream
- whitespace, 602, 602, ˽
- assignment, 602, 602, =
- whitespace, 602, 602, ˽
- identifier, 602, 602, comments
- whitespace, 602, 602, ˽
- identifier, 602, 602, newStream
- terminator, 602, 602, ;
- whitespace, 602, 602, ˽˽˽˽˽˽
- statement, 602, 602, continue
- whitespace, 602, 602, ˽
- identifier, 602, 602, if
- whitespace, 602, 602, ˽
- identifier, 602, 602, newStream
- whitespace, 602, 602, ˽
- identifier, 602, 602, isnt
- whitespace, 602, 602, ˽
- identifier, 602, 602, oldStream
- newline, 602, 603, \n
- whitespace, 603, 603, ˽˽˽˽
- identifier, 603, 603, newStream
- whitespace, 603, 603, ˽
- assignment, 603, 603, =
- whitespace, 603, 603, ˽
- identifier, 603, 603, whitespaces
- whitespace, 603, 603, ˽
- identifier, 603, 603, newStream
- terminator, 603, 603, ;
- whitespace, 603, 603, ˽˽˽
- statement, 603, 603, continue
- whitespace, 603, 603, ˽
- identifier, 603, 603, if
- whitespace, 603, 603, ˽
- identifier, 603, 603, newStream
- whitespace, 603, 603, ˽
- identifier, 603, 603, isnt
- whitespace, 603, 603, ˽
- identifier, 603, 603, oldStream
- newline, 603, 604, \n
- whitespace, 604, 604, ˽˽˽˽
- identifier, 604, 604, newStream
- whitespace, 604, 604, ˽
- assignment, 604, 604, =
- whitespace, 604, 604, ˽
- identifier, 604, 604, lines
- whitespace, 604, 604, ˽
- identifier, 604, 604, newStream
- terminator, 604, 604, ;
- whitespace, 604, 604, ˽˽˽˽˽˽˽˽˽
- statement, 604, 604, continue
- whitespace, 604, 604, ˽
- identifier, 604, 604, if
- whitespace, 604, 604, ˽
- identifier, 604, 604, newStream
- whitespace, 604, 604, ˽
- identifier, 604, 604, isnt
- whitespace, 604, 604, ˽
- identifier, 604, 604, oldStream
- newline, 604, 605, \n
- whitespace, 605, 605, ˽˽˽˽
- identifier, 605, 605, newStream
- whitespace, 605, 605, ˽
- assignment, 605, 605, =
- whitespace, 605, 605, ˽
- identifier, 605, 605, blockStrings
- whitespace, 605, 605, ˽
- identifier, 605, 605, newStream
- terminator, 605, 605, ;
- whitespace, 605, 605, ˽˽
- statement, 605, 605, continue
- whitespace, 605, 605, ˽
- identifier, 605, 605, if
- whitespace, 605, 605, ˽
- identifier, 605, 605, newStream
- whitespace, 605, 605, ˽
- identifier, 605, 605, isnt
- whitespace, 605, 605, ˽
- identifier, 605, 605, oldStream
- newline, 605, 606, \n
- whitespace, 606, 606, ˽˽˽˽
- identifier, 606, 606, newStream
- whitespace, 606, 606, ˽
- assignment, 606, 606, =
- whitespace, 606, 606, ˽
- identifier, 606, 606, strings
- whitespace, 606, 606, ˽
- identifier, 606, 606, newStream
- terminator, 606, 606, ;
- whitespace, 606, 606, ˽˽˽˽˽˽˽
- statement, 606, 606, continue
- whitespace, 606, 606, ˽
- identifier, 606, 606, if
- whitespace, 606, 606, ˽
- identifier, 606, 606, newStream
- whitespace, 606, 606, ˽
- identifier, 606, 606, isnt
- whitespace, 606, 606, ˽
- identifier, 606, 606, oldStream
- newline, 606, 607, \n
- whitespace, 607, 607, ˽˽˽˽
- identifier, 607, 607, newStream
- whitespace, 607, 607, ˽
- assignment, 607, 607, =
- whitespace, 607, 607, ˽
- identifier, 607, 607, numbers
- whitespace, 607, 607, ˽
- identifier, 607, 607, newStream
- terminator, 607, 607, ;
- whitespace, 607, 607, ˽˽˽˽˽˽˽
- statement, 607, 607, continue
- whitespace, 607, 607, ˽
- identifier, 607, 607, if
- whitespace, 607, 607, ˽
- identifier, 607, 607, newStream
- whitespace, 607, 607, ˽
- identifier, 607, 607, isnt
- whitespace, 607, 607, ˽
- identifier, 607, 607, oldStream
- newline, 607, 608, \n
- whitespace, 608, 608, ˽˽˽˽
- identifier, 608, 608, newStream
- whitespace, 608, 608, ˽
- assignment, 608, 608, =
- whitespace, 608, 608, ˽
- identifier, 608, 608, blockRegex
- whitespace, 608, 608, ˽
- identifier, 608, 608, newStream
- terminator, 608, 608, ;
- whitespace, 608, 608, ˽˽˽˽
- statement, 608, 608, continue
- whitespace, 608, 608, ˽
- identifier, 608, 608, if
- whitespace, 608, 608, ˽
- identifier, 608, 608, newStream
- whitespace, 608, 608, ˽
- identifier, 608, 608, isnt
- whitespace, 608, 608, ˽
- identifier, 608, 608, oldStream
- newline, 608, 609, \n
- whitespace, 609, 609, ˽˽˽˽
- identifier, 609, 609, newStream
- whitespace, 609, 609, ˽
- assignment, 609, 609, =
- whitespace, 609, 609, ˽
- identifier, 609, 609, regex
- whitespace, 609, 609, ˽
- identifier, 609, 609, newStream
- terminator, 609, 609, ;
- whitespace, 609, 609, ˽˽˽˽˽˽˽˽˽
- statement, 609, 609, continue
- whitespace, 609, 609, ˽
- identifier, 609, 609, if
- whitespace, 609, 609, ˽
- identifier, 609, 609, newStream
- whitespace, 609, 609, ˽
- identifier, 609, 609, isnt
- whitespace, 609, 609, ˽
- identifier, 609, 609, oldStream
- newline, 609, 610, \n
- whitespace, 610, 610, ˽˽˽˽
- identifier, 610, 610, newStream
- whitespace, 610, 610, ˽
- assignment, 610, 610, =
- whitespace, 610, 610, ˽
- identifier, 610, 610, javascript
- whitespace, 610, 610, ˽˽
- identifier, 610, 610, newStream
- terminator, 610, 610, ;
- whitespace, 610, 610, ˽˽˽
- statement, 610, 610, continue
- whitespace, 610, 610, ˽
- identifier, 610, 610, if
- whitespace, 610, 610, ˽
- identifier, 610, 610, newStream
- whitespace, 610, 610, ˽
- identifier, 610, 610, isnt
- whitespace, 610, 610, ˽
- identifier, 610, 610, oldStream
- newline, 610, 611, \n
- whitespace, 611, 611, ˽˽˽˽
- identifier, 611, 611, newStream
- whitespace, 611, 611, ˽
- assignment, 611, 611, =
- whitespace, 611, 611, ˽
- identifier, 611, 611, functions
- whitespace, 611, 611, ˽
- identifier, 611, 611, newStream
- terminator, 611, 611, ;
- whitespace, 611, 611, ˽˽˽˽˽
- statement, 611, 611, continue
- whitespace, 611, 611, ˽
- identifier, 611, 611, if
- whitespace, 611, 611, ˽
- identifier, 611, 611, newStream
- whitespace, 611, 611, ˽
- identifier, 611, 611, isnt
- whitespace, 611, 611, ˽
- identifier, 611, 611, oldStream
- newline, 611, 612, \n
- whitespace, 612, 612, ˽˽˽˽
- identifier, 612, 612, newStream
- whitespace, 612, 612, ˽
- assignment, 612, 612, =
- whitespace, 612, 612, ˽
- identifier, 612, 612, commas
- whitespace, 612, 612, ˽
- identifier, 612, 612, newStream
- terminator, 612, 612, ;
- whitespace, 612, 612, ˽˽˽˽˽˽˽˽
- statement, 612, 612, continue
- whitespace, 612, 612, ˽
- identifier, 612, 612, if
- whitespace, 612, 612, ˽
- identifier, 612, 612, newStream
- whitespace, 612, 612, ˽
- identifier, 612, 612, isnt
- whitespace, 612, 612, ˽
- identifier, 612, 612, oldStream
- newline, 612, 613, \n
- whitespace, 613, 613, ˽˽˽˽
- identifier, 613, 613, newStream
- whitespace, 613, 613, ˽
- assignment, 613, 613, =
- whitespace, 613, 613, ˽
- identifier, 613, 613, operators
- whitespace, 613, 613, ˽
- identifier, 613, 613, newStream
- terminator, 613, 613, ;
- whitespace, 613, 613, ˽˽˽˽˽
- statement, 613, 613, continue
- whitespace, 613, 613, ˽
- identifier, 613, 613, if
- whitespace, 613, 613, ˽
- identifier, 613, 613, newStream
- whitespace, 613, 613, ˽
- identifier, 613, 613, isnt
- whitespace, 613, 613, ˽
- identifier, 613, 613, oldStream
- newline, 613, 614, \n
- whitespace, 614, 614, ˽˽˽˽
- identifier, 614, 614, newStream
- whitespace, 614, 614, ˽
- assignment, 614, 614, =
- whitespace, 614, 614, ˽
- identifier, 614, 614, accessors
- whitespace, 614, 614, ˽
- identifier, 614, 614, newStream
- terminator, 614, 614, ;
- whitespace, 614, 614, ˽˽˽˽˽
- statement, 614, 614, continue
- whitespace, 614, 614, ˽
- identifier, 614, 614, if
- whitespace, 614, 614, ˽
- identifier, 614, 614, newStream
- whitespace, 614, 614, ˽
- identifier, 614, 614, isnt
- whitespace, 614, 614, ˽
- identifier, 614, 614, oldStream
- newline, 614, 615, \n
- newline, 615, 616, \n
- whitespace, 616, 616, ˽˽˽˽
- comment, 616, 616, #˽No˽tokenize˽function˽found˽a˽valid˽string.˽Consume˽one˽character˽at˽a˽time
- newline, 616, 617, \n
- whitespace, 617, 617, ˽˽˽˽
- comment, 617, 617, #˽into˽a˽token˽with˽type˽'unknown'˽until˽a˽valid˽one˽is˽found˽or˽the˽end˽of
- newline, 617, 618, \n
- whitespace, 618, 618, ˽˽˽˽
- comment, 618, 618, #˽the˽source˽has˽been˽reached.
- newline, 618, 619, \n
- whitespace, 619, 619, ˽˽˽˽
- identifier, 619, 619, if
- whitespace, 619, 619, ˽
- identifier, 619, 619, newStream
- property-accessor, 619, 619, .
- identifier, 619, 619, tokens
- property-accessor, 619, 619, .
- identifier, 619, 619, length
- whitespace, 619, 619, ˽
- identifier, 619, 619, is
- whitespace, 619, 619, ˽
- identifier, 619, 619, oldStream
- property-accessor, 619, 619, .
- identifier, 619, 619, tokens
- property-accessor, 619, 619, .
- identifier, 619, 619, length
- newline, 619, 620, \n
- whitespace, 620, 620, ˽˽˽˽˽˽
- identifier, 620, 620, newStream
- whitespace, 620, 620, ˽
- assignment, 620, 620, =
- whitespace, 620, 620, ˽
- identifier, 620, 620, consumeUnknown
- whitespace, 620, 620, ˽
- identifier, 620, 620, oldStream
- newline, 620, 621, \n
- newline, 621, 622, \n
- whitespace, 622, 622, ˽˽
- identifier, 622, 622, newStream
- newline, 622, 623, \n
- newline, 623, 624, \n
- identifier, 624, 624, module
- property-accessor, 624, 624, .
- identifier, 624, 624, exports
- whitespace, 624, 624, ˽
- assignment, 624, 624, =
- whitespace, 624, 624, ˽
- open-curly-bracket, 624, 624, {
- newline, 624, 625, \n
- whitespace, 625, 625, ˽˽
- identifier, 625, 625, lexer
- newline, 625, 626, \n
- whitespace, 626, 626, ˽˽
- identifier, 626, 626, tokenize
- newline, 626, 627, \n
- newline, 627, 628, \n
- whitespace, 628, 628, ˽˽
- identifier, 628, 628, identifiers
- newline, 628, 629, \n
- whitespace, 629, 629, ˽˽
- identifier, 629, 629, identifierType
- newline, 629, 630, \n
- whitespace, 630, 630, ˽˽
- identifier, 630, 630, blockComments
- newline, 630, 631, \n
- whitespace, 631, 631, ˽˽
- identifier, 631, 631, comments
- newline, 631, 632, \n
- whitespace, 632, 632, ˽˽
- identifier, 632, 632, whitespaces
- newline, 632, 633, \n
- whitespace, 633, 633, ˽˽
- identifier, 633, 633, lines
- newline, 633, 634, \n
- whitespace, 634, 634, ˽˽
- identifier, 634, 634, blockStrings
- newline, 634, 635, \n
- whitespace, 635, 635, ˽˽
- identifier, 635, 635, strings
- newline, 635, 636, \n
- whitespace, 636, 636, ˽˽
- identifier, 636, 636, numbers
- newline, 636, 637, \n
- whitespace, 637, 637, ˽˽
- identifier, 637, 637, blockRegex
- newline, 637, 638, \n
- whitespace, 638, 638, ˽˽
- identifier, 638, 638, regex
- newline, 638, 639, \n
- whitespace, 639, 639, ˽˽
- identifier, 639, 639, javascript
- newline, 639, 640, \n
- whitespace, 640, 640, ˽˽
- identifier, 640, 640, functions
- newline, 640, 641, \n
- whitespace, 641, 641, ˽˽
- identifier, 641, 641, commas
- newline, 641, 642, \n
- whitespace, 642, 642, ˽˽
- identifier, 642, 642, operators
- newline, 642, 643, \n
- whitespace, 643, 643, ˽˽
- identifier, 643, 643, operatorType
- newline, 643, 644, \n
- whitespace, 644, 644, ˽˽
- identifier, 644, 644, accessors
- newline, 644, 645, \n
- newline, 645, 646, \n
- whitespace, 646, 646, ˽˽
- identifier, 646, 646, Token
- newline, 646, 647, \n
- whitespace, 647, 647, ˽˽
- identifier, 647, 647, Location
- newline, 647, 648, \n
- whitespace, 648, 648, ˽˽
- identifier, 648, 648, TokenStream
- newline, 648, 649, \n
- newline, 649, 650, \n
- whitespace, 650, 650, ˽˽
- identifier, 650, 650, IDENTIFIER
- newline, 650, 651, \n
- whitespace, 651, 651, ˽˽
- identifier, 651, 651, OPERATOR
- newline, 651, 652, \n
- whitespace, 652, 652, ˽˽
- identifier, 652, 652, UNARY
- newline, 652, 653, \n
- whitespace, 653, 653, ˽˽
- identifier, 653, 653, UNARY_MATH
- newline, 653, 654, \n
- whitespace, 654, 654, ˽˽
- identifier, 654, 654, LOGIC
- newline, 654, 655, \n
- whitespace, 655, 655, ˽˽
- identifier, 655, 655, SHIFT
- newline, 655, 656, \n
- whitespace, 656, 656, ˽˽
- identifier, 656, 656, COMPARE
- newline, 656, 657, \n
- whitespace, 657, 657, ˽˽
- identifier, 657, 657, MATH
- newline, 657, 658, \n
- whitespace, 658, 658, ˽˽
- identifier, 658, 658, RELATION
- newline, 658, 659, \n
- whitespace, 659, 659, ˽˽
- identifier, 659, 659, BOOL
- newline, 659, 660, \n
- whitespace, 660, 660, ˽˽
- identifier, 660, 660, COMMENT
- newline, 660, 661, \n
- whitespace, 661, 661, ˽˽
- identifier, 661, 661, BLOCK_COMMENT
- newline, 661, 662, \n
- whitespace, 662, 662, ˽˽
- identifier, 662, 662, INLINE_STRING_QUOTES
- newline, 662, 663, \n
- whitespace, 663, 663, ˽˽
- identifier, 663, 663, STATEMENTS
- newline, 663, 664, \n
- whitespace, 664, 664, ˽˽
- identifier, 664, 664, WHITESPACE
- newline, 664, 665, \n
- newline, 665, 666, \n
- whitespace, 666, 666, ˽˽
- identifier, 666, 666, helper
- colon, 666, 666, :
- whitespace, 666, 666, ˽
- open-curly-bracket, 666, 666, {
- newline, 666, 667, \n
- whitespace, 667, 667, ˽˽˽˽
- identifier, 667, 667, clean
- newline, 667, 668, \n
- whitespace, 668, 668, ˽˽˽˽
- identifier, 668, 668, stripBOM
- newline, 668, 669, \n
- whitespace, 669, 669, ˽˽˽˽
- identifier, 669, 669, stripTrailingSpaces
- newline, 669, 670, \n
- whitespace, 670, 670, ˽˽˽˽
- identifier, 670, 670, stripCarriageReturns
- newline, 670, 671, \n
- whitespace, 671, 671, ˽˽˽˽
- identifier, 671, 671, words
- newline, 671, 672, \n
- whitespace, 672, 672, ˽˽˽˽
- identifier, 672, 672, initialToken
- newline, 672, 673, \n
- whitespace, 673, 673, ˽˽˽˽
- identifier, 673, 673, advance
- newline, 673, 674, \n
- whitespace, 674, 674, ˽˽˽˽
- identifier, 674, 674, advanceBlock
- newline, 674, 675, \n
- whitespace, 675, 675, ˽˽˽˽
- identifier, 675, 675, blockEndLocation
- newline, 675, 676, \n
- whitespace, 676, 676, ˽˽˽˽
- identifier, 676, 676, consumeUnknown
- newline, 676, 677, \n
- whitespace, 677, 677, ˽˽
- close-curly-bracket, 677, 677, }
- newline, 677, 678, \n
- close-curly-bracket, 678, 678, }
- newline, 678, 679, \n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment