chevrotain
Version:
Chevrotain is a high performance fault Tolerant Javascript parsing DSL for building recursive decent parsers
574 lines • 32.7 kB
HTML
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Lexer | Chevrotain</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<script src="../assets/js/modernizr.js"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">Chevrotain</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../globals.html">Globals</a>
</li>
<li>
<a href="../modules/chevrotain.html">chevrotain</a>
</li>
<li>
<a href="chevrotain.lexer.html">Lexer</a>
</li>
</ul>
<h1>Class Lexer</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Lexer</span>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class"><a href="chevrotain.lexer.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#allpatterns" class="tsd-kind-icon">all<wbr>Patterns</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#emptygroups" class="tsd-kind-icon">empty<wbr>Groups</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#patternidxtocanlineterminator" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToCan<wbr>Line<wbr>Terminator</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#patternidxtoclass" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToClass</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#patternidxtogroup" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToGroup</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#patternidxtolongeraltidx" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToLonger<wbr>Alt<wbr>Idx</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="chevrotain.lexer.html#tokenclasses" class="tsd-kind-icon">token<wbr>Classes</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><a href="chevrotain.lexer.html#na" class="tsd-kind-icon">NA</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="chevrotain.lexer.html#tokenize" class="tsd-kind-icon">tokenize</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Object literals</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-object-literal tsd-parent-kind-class tsd-is-static"><a href="chevrotain.lexer.html#skipped" class="tsd-kind-icon">SKIPPED</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class">
<a name="constructor" class="tsd-anchor"></a>
<h3>constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">new <wbr>Lexer<span class="tsd-signature-symbol">(</span>tokenClasses<span class="tsd-signature-symbol">: </span><a href="../modules/chevrotain.html#tokenconstructor" class="tsd-signature-type">TokenConstructor</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="chevrotain.lexer.html" class="tsd-signature-type">Lexer</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L36">scan/lexer_public.ts:36</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>tokenClasses: <a href="../modules/chevrotain.html#tokenconstructor" class="tsd-signature-type">TokenConstructor</a><span class="tsd-signature-symbol">[]</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>constructor functions for the Tokens types this scanner will support
These constructors must be in one of three forms:</p>
<ol>
<li><p>With a PATTERN property that has a RegExp value for tokens to match:
example: -->class Integer extends Token { static PATTERN = /[1-9]\d }<--</p>
</li>
<li><p>With a PATTERN property that has a RegExp value AND an IGNORE property with boolean value true.
These tokens will be matched but not as part of the main token vector.
this is usually used for ignoring whitespace/comments
example: --> class Whitespace extends Token { static PATTERN = /(\t| )/; static IGNORE = true}<--</p>
</li>
<li><p>With a PATTERN property that has the value of the var Lexer.NA defined above.
This is a convenience form used to avoid matching Token classes that only act as categories.
example: -->class Keyword extends Token { static PATTERN = NA }<--</p>
</li>
</ol>
<p> The following RegExp patterns are not supported:
a. '$' for match at end of input
b. /b global flag
c. /m multi-line flag</p>
<p> The Lexer will identify the first pattern the matches, Therefor the order of Token Constructors passed
To the SimpleLexer's constructor is meaningful. If two patterns may match the same string, the longer one
should be before the shorter one.</p>
<p> Note that there are situations in which we may wish to place the longer pattern after the shorter one.
For example: keywords vs Identifiers.
'do'(/do/) and 'done'(/w+)</p>
<ul>
<li><p>If the Identifier pattern appears before the 'do' pattern both 'do' and 'done'
will be lexed as an Identifier.</p>
</li>
<li><p>If the 'do' pattern appears before the Identifier pattern 'do' will be lexed correctly as a keyword.
however 'done' will be lexed as TWO tokens keyword 'do' and identifier 'ne'.</p>
<p>To resolve this problem, add a static property on the keyword's Tokens constructor named: LONGER_ALT
example:</p>
<p> export class Identifier extends Keyword { static PATTERN = /[_a-zA-Z][_a-zA-Z0-9]/ }
export class Keyword extends Token {</p>
<pre><code> <span class="hljs-keyword">static</span> PATTERN = lex.NA
<span class="hljs-keyword">static</span> LONGER_ALT = Identifier
</code></pre><p> }
export class Do extends Keyword { static PATTERN = /do/ }
export class While extends Keyword { static PATTERN = /while/ }
export class Return extends Keyword { static PATTERN = /return/ }</p>
<p>The lexer will then also attempt to match a (longer) Identifier each time a keyword is matched</p>
</li>
</ul>
</div>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="chevrotain.lexer.html" class="tsd-signature-type">Lexer</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="allpatterns" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> all<wbr>Patterns</h3>
<div class="tsd-signature tsd-kind-icon">all<wbr>Patterns<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RegExp</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L31">scan/lexer_public.ts:31</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="emptygroups" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> empty<wbr>Groups</h3>
<div class="tsd-signature tsd-kind-icon">empty<wbr>Groups<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L36">scan/lexer_public.ts:36</a></li>
</ul>
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-index-signature">
<h5><span class="tsd-signature-symbol">[</span>groupName: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><a href="chevrotain.token.html" class="tsd-signature-type">Token</a></h5>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="patternidxtocanlineterminator" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> pattern<wbr>Idx<wbr>ToCan<wbr>Line<wbr>Terminator</h3>
<div class="tsd-signature tsd-kind-icon">pattern<wbr>Idx<wbr>ToCan<wbr>Line<wbr>Terminator<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L35">scan/lexer_public.ts:35</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="patternidxtoclass" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> pattern<wbr>Idx<wbr>ToClass</h3>
<div class="tsd-signature tsd-kind-icon">pattern<wbr>Idx<wbr>ToClass<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L32">scan/lexer_public.ts:32</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="patternidxtogroup" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> pattern<wbr>Idx<wbr>ToGroup</h3>
<div class="tsd-signature tsd-kind-icon">pattern<wbr>Idx<wbr>ToGroup<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L33">scan/lexer_public.ts:33</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="patternidxtolongeraltidx" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> pattern<wbr>Idx<wbr>ToLonger<wbr>Alt<wbr>Idx</h3>
<div class="tsd-signature tsd-kind-icon">pattern<wbr>Idx<wbr>ToLonger<wbr>Alt<wbr>Idx<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L34">scan/lexer_public.ts:34</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="tokenclasses" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> token<wbr>Classes</h3>
<div class="tsd-signature tsd-kind-icon">token<wbr>Classes<span class="tsd-signature-symbol">:</span> <a href="../modules/chevrotain.html#tokenconstructor" class="tsd-signature-type">TokenConstructor</a><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L90">scan/lexer_public.ts:90</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>constructor functions for the Tokens types this scanner will support
These constructors must be in one of three forms:</p>
</div>
<ol>
<li><p>With a PATTERN property that has a RegExp value for tokens to match:
example: -->class Integer extends Token { static PATTERN = /[1-9]\d }<--</p>
</li>
<li><p>With a PATTERN property that has a RegExp value AND an IGNORE property with boolean value true.
These tokens will be matched but not as part of the main token vector.
this is usually used for ignoring whitespace/comments
example: --> class Whitespace extends Token { static PATTERN = /(\t| )/; static IGNORE = true}<--</p>
</li>
<li><p>With a PATTERN property that has the value of the var Lexer.NA defined above.
This is a convenience form used to avoid matching Token classes that only act as categories.
example: -->class Keyword extends Token { static PATTERN = NA }<--</p>
</li>
</ol>
<p>The following RegExp patterns are not supported:
a. '$' for match at end of input
b. /b global flag
c. /m multi-line flag</p>
<p>The Lexer will identify the first pattern the matches, Therefor the order of Token Constructors passed
To the SimpleLexer's constructor is meaningful. If two patterns may match the same string, the longer one
should be before the shorter one.</p>
<p>Note that there are situations in which we may wish to place the longer pattern after the shorter one.
For example: keywords vs Identifiers.
'do'(/do/) and 'done'(/w+)</p>
<p>If the Identifier pattern appears before the 'do' pattern both 'do' and 'done'
will be lexed as an Identifier.</p>
<p>If the 'do' pattern appears before the Identifier pattern 'do' will be lexed correctly as a keyword.
however 'done' will be lexed as TWO tokens keyword 'do' and identifier 'ne'.</p>
<p>To resolve this problem, add a static property on the keyword's Tokens constructor named: LONGER_ALT
example:</p>
<p>export class Identifier extends Keyword { static PATTERN = /[_a-zA-Z][_a-zA-Z0-9]/ }
export class Keyword extends Token {
static PATTERN = lex.NA
static LONGER_ALT = Identifier
}
export class Do extends Keyword { static PATTERN = /do/ }
export class While extends Keyword { static PATTERN = /while/ }
export class Return extends Keyword { static PATTERN = /return/ }</p>
<p>The lexer will then also attempt to match a (longer) Identifier each time a keyword is matched</p>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-static">
<a name="na" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> NA</h3>
<div class="tsd-signature tsd-kind-icon">NA<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RegExp</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L29">scan/lexer_public.ts:29</a></li>
</ul>
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="tokenize" class="tsd-anchor"></a>
<h3>tokenize</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">tokenize<span class="tsd-signature-symbol">(</span>text<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/chevrotain.ilexingresult.html" class="tsd-signature-type">ILexingResult</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L109">scan/lexer_public.ts:109</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Will lex(Tokenize) a string.
Note that this can be called repeatedly on different strings as this method
does not modify the state of the Lexer.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>text: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the string to lex</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../interfaces/chevrotain.ilexingresult.html" class="tsd-signature-type">ILexingResult</a></h4>
<p>}}</p>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Object literals</h2>
<section class="tsd-panel tsd-member tsd-kind-object-literal tsd-parent-kind-class tsd-is-static">
<a name="skipped" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> SKIPPED</h3>
<div class="tsd-signature tsd-kind-icon">SKIPPED<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L24">scan/lexer_public.ts:24</a></li>
</ul>
</aside>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-object-literal">
<a name="skipped.description" class="tsd-anchor"></a>
<h3>description</h3>
<div class="tsd-signature tsd-kind-icon">description<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/SAP/chevrotain/blob/HEAD/src/scan/lexer_public.ts#L25">scan/lexer_public.ts:25</a></li>
</ul>
</aside>
</section>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
<li class="current tsd-kind-module">
<a href="../modules/chevrotain.html">chevrotain</a>
</li>
<li class=" tsd-kind-module tsd-parent-kind-module">
<a href="../modules/chevrotain.exceptions.html">chevrotain.exceptions</a>
</li>
<li class=" tsd-kind-module tsd-parent-kind-module">
<a href="../modules/chevrotain.gast.html">chevrotain.gast</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="chevrotain.eof.html" class="tsd-kind-icon">EOF</a>
</li>
</ul>
<ul class="current">
<li class="current tsd-kind-class tsd-parent-kind-module">
<a href="chevrotain.lexer.html" class="tsd-kind-icon">Lexer</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="chevrotain.lexer.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#allpatterns" class="tsd-kind-icon">all<wbr>Patterns</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#emptygroups" class="tsd-kind-icon">empty<wbr>Groups</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#patternidxtocanlineterminator" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToCan<wbr>Line<wbr>Terminator</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#patternidxtoclass" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToClass</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#patternidxtogroup" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToGroup</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#patternidxtolongeraltidx" class="tsd-kind-icon">pattern<wbr>Idx<wbr>ToLonger<wbr>Alt<wbr>Idx</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="chevrotain.lexer.html#tokenclasses" class="tsd-kind-icon">token<wbr>Classes</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-static">
<a href="chevrotain.lexer.html#na" class="tsd-kind-icon">NA</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="chevrotain.lexer.html#tokenize" class="tsd-kind-icon">tokenize</a>
</li>
<li class=" tsd-kind-object-literal tsd-parent-kind-class tsd-is-static">
<a href="chevrotain.lexer.html#skipped" class="tsd-kind-icon">SKIPPED</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="chevrotain.parser.html" class="tsd-kind-icon">Parser</a>
</li>
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="chevrotain.token.html" class="tsd-kind-icon">Token</a>
</li>
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="chevrotain.virtualtoken.html" class="tsd-kind-icon">Virtual<wbr>Token</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/chevrotain.ifollowkey.html" class="tsd-kind-icon">IFollow<wbr>Key</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/chevrotain.ilexingerror.html" class="tsd-kind-icon">ILexing<wbr>Error</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/chevrotain.ilexingresult.html" class="tsd-kind-icon">ILexing<wbr>Result</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module tsd-has-type-parameter">
<a href="../interfaces/chevrotain.ioralt.html" class="tsd-kind-icon">IOr<wbr>Alt</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module tsd-has-type-parameter">
<a href="../interfaces/chevrotain.ioraltimplicit.html" class="tsd-kind-icon">IOr<wbr>Alt<wbr>Implicit</a>
</li>
<li class=" tsd-kind-interface tsd-parent-kind-module">
<a href="../interfaces/chevrotain.iparserstate.html" class="tsd-kind-icon">IParser<wbr>State</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module">
<a href="../modules/chevrotain.html#grammaraction" class="tsd-kind-icon">Grammar<wbr>Action</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module">
<a href="../modules/chevrotain.html#lookaheadfunc" class="tsd-kind-icon">Look<wbr>Ahead<wbr>Func</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module">
<a href="../modules/chevrotain.html#tokenconstructor" class="tsd-kind-icon">Token<wbr>Constructor</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module">
<a href="../modules/chevrotain.html#eof_follow_key" class="tsd-kind-icon">EOF_<wbr>FOLLOW_<wbr>KEY</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="../modules/chevrotain.html#inrulerecoveryexception" class="tsd-kind-icon">In<wbr>Rule<wbr>Recovery<wbr>Exception</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="../modules/chevrotain.html#extendtoken" class="tsd-kind-icon">extend<wbr>Token</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<a href="../modules/chevrotain.html#tokenname" class="tsd-kind-icon">token<wbr>Name</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li>
<li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li>
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
<li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
<li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
<li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="http://typedoc.io" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script>
</body>
</html>