blob: 1c2e1bce2555e99d4f527d56c8a378d5570c9349 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>LineRule (OpenJ9 JDK 11)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="com.ibm.dtfj.javacore.parser.framework.tag.LineRule class">
<meta name="keywords" content="fSource">
<meta name="keywords" content="fCharSubSet">
<meta name="keywords" content="fLineNumber">
<meta name="keywords" content="fOffset">
<meta name="keywords" content="parseLine()">
<meta name="keywords" content="getLineNumber()">
<meta name="keywords" content="processLine()">
<meta name="keywords" content="addToken()">
<meta name="keywords" content="addAllCharactersAsTokenAndConsumeFirstMatch()">
<meta name="keywords" content="addAllCharactersAsTokenUntilFirstMatch()">
<meta name="keywords" content="addAllCharactersAsTokenUntilIndex()">
<meta name="keywords" content="addNonPrefixedHexToken()">
<meta name="keywords" content="addPrefixedHexToken()">
<meta name="keywords" content="matchAndConsumeValue()">
<meta name="keywords" content="consumeCharacters()">
<meta name="keywords" content="consumeUntilFirstMatch()">
<meta name="keywords" content="findFirst()">
<meta name="keywords" content="indexOfLast()">
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="LineRule (OpenJ9 JDK 11)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../index.html">Overview</a></li>
<li><a href="../../../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LineRule.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../../../../../../module-summary.html">openj9.dtfj</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.ibm.dtfj.javacore.parser.framework.tag</a></div>
<h2 title="Class LineRule" class="title">Class LineRule</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.ibm.dtfj.javacore.parser.framework.tag.LineRule</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ILineRule.html" title="interface in com.ibm.dtfj.javacore.parser.framework.tag">ILineRule</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../j9/section/classloader/ClassLoaderLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.classloader">ClassLoaderLineRule</a></code>, <code><a href="../../j9/section/monitor/MonitorObjectLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.monitor">MonitorObjectLineRule</a></code>, <code><a href="../../j9/section/thread/NativeStackTraceLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.thread">NativeStackTraceLineRule</a></code>, <code><a href="../../j9/section/common/PointerSizeLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.common">PointerSizeLineRule</a></code>, <code><a href="../../j9/section/thread/StackTraceLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.thread">StackTraceLineRule</a></code>, <code><a href="../../j9/section/thread/ThreadInfoLineRule.html" title="class in com.ibm.dtfj.javacore.parser.j9.section.thread">ThreadInfoLineRule</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">LineRule</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a>
implements <a href="ILineRule.html" title="interface in com.ibm.dtfj.javacore.parser.framework.tag">ILineRule</a></pre>
<div class="block">This is the basic line parser for a javacore tag. A set of frequently-encountered pattern matching
behaviours are implemented as helper methods to facilitate pattern matching. However, the concrete subtype
must implement the actual pattern matching and token generation logic for a particular tag.
Each tag is ideally assigned it's own linerule, unless multiple tags share the exact same pattern.
<br><br>
This linerule parses a line based on the parsing logic implemented by the concrete type, and adds
the parsed data as tokens to an internal token map. The concrete classes only need to specify
HOW the line is parsed, and HOW the tokens are generated, but it need not worry about the actual
line parsing call. The parsing framework calls the line parser internally.
<br><br>
<b>GENERAL BEHAVIOUR</b>:
See the javadoc of the helper methods, but generally, as tokens are generated, or alternately, sections
of the source string (which is stored internally in a buffer) matched and discarded, the processed subsections are removed from the source string
until nothing remains. Some helper methods may just find a pattern but not do anything, others will find the first
occurrence of a pattern, and discard all characters from the start of the source to the first encountered pattern.
<br><br>
<b>HANDLING TOKEN TYPES</b>:
Based on how javacores are structured, it is assumed that
each tag line contains at most one instance of a token type.
If two or more of the same token types exist, this is indicative
that the line should be split into two or more separate javacore
tag lines. Consequently, only at most one instance of a token
type is added to the token map. If the token type already exists
in the map, it will be overwritten.
<br><br>
The parser framework will execute the line parsing logic implemented by the concrete subclass and
return a list of tokens (generally a map, where the key is the token type, and the value is the token value)
to the section parser that uses these line rules. A series of line rules
can be registered into a Tag Parser, which in turn gets used by a Section Parser.
<br><br>
Note that methods are provided to explicitly generate and add a token, and the concrete-class must
call these methods explicitly to add a token.
<br><br></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ITagParser.html" title="interface in com.ibm.dtfj.javacore.parser.framework.tag"><code>ITagParser</code></a>,
<a href="ITagAttributeResult.html" title="interface in com.ibm.dtfj.javacore.parser.framework.tag"><code>ITagAttributeResult</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">StringBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fCharSubSet">fCharSubSet</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fLineNumber">fLineNumber</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fOffset">fOffset</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">StringBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fSource">fSource</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LineRule</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAllCharactersAsTokenAndConsumeFirstMatch(java.lang.String,java.util.regex.Matcher)">addAllCharactersAsTokenAndConsumeFirstMatch</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Grabs all characters up to the first match specified by the matcher, and adds
the latter as a token of a argument-specified type to the internal token list.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAllCharactersAsTokenUntilFirstMatch(java.lang.String,java.util.regex.Matcher)">addAllCharactersAsTokenUntilFirstMatch</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Grabs all characters up to but excluding the first match specified by the matcher,
and adds the latter as a token of an argument-specified type.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAllCharactersAsTokenUntilIndex(java.lang.String,int,boolean)">addAllCharactersAsTokenUntilIndex</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
int&nbsp;endIndex,
boolean&nbsp;stripTrailingWhitespace)</code></th>
<td class="colLast">
<div class="block">Copies all characters from start to endIndex - 1.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNonPrefixedHexToken(java.lang.String)">addNonPrefixedHexToken</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Matches the first hexadecimal match encountered that is not prefixed by "0x" as a token.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPrefixedHexToken(java.lang.String)">addPrefixedHexToken</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Matches the first prefixed hexadecimal pattern encountered, and adds it as a token.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToken(com.ibm.dtfj.javacore.parser.framework.scanner.IParserToken)">addToken</a></span>&#8203;(<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;token)</code></th>
<td class="colLast">
<div class="block">Adds a non-null token to the token map.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToken(java.lang.String,java.lang.String)">addToken</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Adds a token of the type specified to the internal token list and assigns it the value specified by the argument.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToken(java.lang.String,java.util.regex.Matcher)">addToken</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Adds a token of the type specified via argument to the internal token map, and assigns it
the value matched by the pattern matcher.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consumeCharacters(int,int)">consumeCharacters</a></span>&#8203;(int&nbsp;startIndex,
int&nbsp;endIndex)</code></th>
<td class="colLast">
<div class="block">Consumes a section of characters from the buffer.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consumeUntilFirstMatch(java.util.regex.Matcher)">consumeUntilFirstMatch</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Matches the first occurrence of the pattern and consumes all characters
from the start of the buffer until the first occurrence of the pattern.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findFirst(java.util.regex.Matcher)">findFirst</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Finds the first match.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLineNumber()">getLineNumber</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#indexOfLast(java.util.regex.Matcher)">indexOfLast</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Returns the starting index of the last matched pattern, but doesn't consume anything or generate
tokens.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matchAndConsumeValue(java.util.regex.Matcher)">matchAndConsumeValue</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</code></th>
<td class="colLast">
<div class="block">Finds the first occurrence of the pattern in the source.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../j9/IAttributeValueMap.html" title="interface in com.ibm.dtfj.javacore.parser.j9">IAttributeValueMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseLine(java.lang.String,int,int)">parseLine</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;source,
int&nbsp;lineNumber,
int&nbsp;startingOffset)</code></th>
<td class="colLast">
<div class="block">Initializes buffer, token list, and other fields prior to parsing and tokenising a line.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processLine(java.lang.String,int)">processLine</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;source,
int&nbsp;startingOffset)</code></th>
<td class="colLast">
<div class="block">Must be implemented by the subtype.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="fSource">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fSource</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">StringBuffer</a> fSource</pre>
</li>
</ul>
<a id="fCharSubSet">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fCharSubSet</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">StringBuffer</a> fCharSubSet</pre>
</li>
</ul>
<a id="fLineNumber">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fLineNumber</h4>
<pre>protected&nbsp;int fLineNumber</pre>
</li>
</ul>
<a id="fOffset">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>fOffset</h4>
<pre>protected&nbsp;int fOffset</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LineRule</h4>
<pre>public&nbsp;LineRule()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="parseLine(java.lang.String,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseLine</h4>
<pre class="methodSignature">public&nbsp;<a href="../../j9/IAttributeValueMap.html" title="interface in com.ibm.dtfj.javacore.parser.j9">IAttributeValueMap</a>&nbsp;parseLine&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;source,
int&nbsp;lineNumber,
int&nbsp;startingOffset)</pre>
<div class="block">Initializes buffer, token list, and other fields prior to parsing and tokenising a line.
The user-implemented method that parses the line is called here. This method is called
internally by the framework, so the user never needs to explicitly call this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ILineRule.html#parseLine(java.lang.String,int,int)">parseLine</a></code>&nbsp;in interface&nbsp;<code><a href="ILineRule.html" title="interface in com.ibm.dtfj.javacore.parser.framework.tag">ILineRule</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - string containing source to parse</dd>
<dd><code>lineNumber</code> - line number on file of source</dd>
<dd><code>startingOffset</code> - offset of the first character in the source line. offsets are determined externally from the start of the file.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>attribute value map containing parsed tokens.</dd>
</dl>
</li>
</ul>
<a id="getLineNumber()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLineNumber</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;getLineNumber()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>line number on disk of the source line being parsed.</dd>
</dl>
</li>
</ul>
<a id="processLine(java.lang.String,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processLine</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;processLine&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;source,
int&nbsp;startingOffset)</pre>
<div class="block">Must be implemented by the subtype. It gets called internally
by the parser framework, so the user need not worry about
calling this explicitly.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>startingOffset</code> - </dd>
<dd><code>source</code> - to be parsed.</dd>
</dl>
</li>
</ul>
<a id="addToken(java.lang.String,java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToken</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addToken&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Adds a token of the type specified via argument to the internal token map, and assigns it
the value matched by the pattern matcher. The generated token is
returned, or null if no pattern was matched.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - of the token to be generated</dd>
<dd><code>matcher</code> - containing pattern to match. the value matched is assigned as the value of the token</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token if match is successful, or null otherwise</dd>
</dl>
</li>
</ul>
<a id="addToken(com.ibm.dtfj.javacore.parser.framework.scanner.IParserToken)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToken</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;addToken&#8203;(<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;token)</pre>
<div class="block">Adds a non-null token to the token map. If the token type already exists, it
overwrites the value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - </dd>
</dl>
</li>
</ul>
<a id="addToken(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToken</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addToken&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;value)</pre>
<div class="block">Adds a token of the type specified to the internal token list and assigns it the value specified by the argument.
Returns the generated token.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - of the token</dd>
<dd><code>value</code> - of the token</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token.</dd>
</dl>
</li>
</ul>
<a id="addAllCharactersAsTokenAndConsumeFirstMatch(java.lang.String,java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAllCharactersAsTokenAndConsumeFirstMatch</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addAllCharactersAsTokenAndConsumeFirstMatch&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Grabs all characters up to the first match specified by the matcher, and adds
the latter as a token of a argument-specified type to the internal token list. All the aforementioned characters
as well as the first pattern matched are removed from the source buffer. The matched pattern
is not included in the token.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - </dd>
<dd><code>matcher</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token if match found, or null otherwise</dd>
</dl>
</li>
</ul>
<a id="addAllCharactersAsTokenUntilFirstMatch(java.lang.String,java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAllCharactersAsTokenUntilFirstMatch</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addAllCharactersAsTokenUntilFirstMatch&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Grabs all characters up to but excluding the first match specified by the matcher,
and adds the latter as a token of an argument-specified type.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - </dd>
<dd><code>matcher</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token if match found, or null otherwise</dd>
</dl>
</li>
</ul>
<a id="addAllCharactersAsTokenUntilIndex(java.lang.String,int,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAllCharactersAsTokenUntilIndex</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addAllCharactersAsTokenUntilIndex&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type,
int&nbsp;endIndex,
boolean&nbsp;stripTrailingWhitespace)</pre>
<div class="block">Copies all characters from start to endIndex - 1. Also gives the option to strip trailing whitespace.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - token type</dd>
<dd><code>endIndex</code> - </dd>
<dd><code>stripTrailingWhitespace</code> - if whitespace starting from endIndex - 1 to n, where n >=0 && n < endIndex.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">IndexOutOfBoundsException</a></code> - if endIndex > source buffer length || endIndex <= 0</dd>
</dl>
</li>
</ul>
<a id="addNonPrefixedHexToken(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNonPrefixedHexToken</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addNonPrefixedHexToken&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type)</pre>
<div class="block">Matches the first hexadecimal match encountered that is not prefixed by "0x" as a token. The latter
is then prefixed to the value of the token before generating the token.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - of token to be generated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token if hexadecimal match found, or null otherwise.</dd>
</dl>
</li>
</ul>
<a id="addPrefixedHexToken(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addPrefixedHexToken</h4>
<pre class="methodSignature">protected&nbsp;<a href="../scanner/IParserToken.html" title="interface in com.ibm.dtfj.javacore.parser.framework.scanner">IParserToken</a>&nbsp;addPrefixedHexToken&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;type)</pre>
<div class="block">Matches the first prefixed hexadecimal pattern encountered, and adds it as a token.
Pattern, and all characters prior to the pattern are consumed from the buffer.
<br><br>
If the token type already exists in the token map, it overwrites the value with the new token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - of token to be generated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>generated token, if match found, or null otherwise</dd>
</dl>
</li>
</ul>
<a id="matchAndConsumeValue(java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchAndConsumeValue</h4>
<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;matchAndConsumeValue&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Finds the first occurrence of the pattern in the source.
<br>
Returns the character sequence that matched that pattern.
<br>
Deletes any character sequences from the start of the source to the end
of the matched character sequence, and retains the remainder characters for
further analysis.
<br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matcher</code> - containing pattern to match</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>string value or null</dd>
</dl>
</li>
</ul>
<a id="consumeCharacters(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consumeCharacters</h4>
<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;consumeCharacters&#8203;(int&nbsp;startIndex,
int&nbsp;endIndex)</pre>
<div class="block">Consumes a section of characters from the buffer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>startIndex</code> - inclusive</dd>
<dd><code>endIndex</code> - exclusive</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>String value of consumed characters</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">IndexOutOfBoundsException</a></code> - if start and end are outside the buffer range.</dd>
</dl>
</li>
</ul>
<a id="consumeUntilFirstMatch(java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consumeUntilFirstMatch</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;consumeUntilFirstMatch&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Matches the first occurrence of the pattern and consumes all characters
from the start of the buffer until the first occurrence of the pattern.
The pattern itself is also consumed. No tokens are generated.
<br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matcher</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if matched and consumed, false otherwise</dd>
</dl>
</li>
</ul>
<a id="findFirst(java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findFirst</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;findFirst&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Finds the first match. No consumption or token generation occurs.
The buffer state is left intact.
<br></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matcher</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if match found, false otherwise</dd>
</dl>
</li>
</ul>
<a id="indexOfLast(java.util.regex.Matcher)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>indexOfLast</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;indexOfLast&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Matcher.html?is-external=true" title="class or interface in java.util.regex" class="externalLink" target="_blank">Matcher</a>&nbsp;matcher)</pre>
<div class="block">Returns the starting index of the last matched pattern, but doesn't consume anything or generate
tokens.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matcher</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>starting index of last match, or -1 if nothing found</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../index.html">Overview</a></li>
<li><a href="../../../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LineRule.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</body>
</html>