commonMain.org.luaj.vm2.parser.Token.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of luak Show documentation
Show all versions of luak Show documentation
Multiplatform Kotlin LuaJ port (LUA interpreter)
/* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */
/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
package org.luaj.vm2.parser
import kotlin.jvm.*
/**
* Describes the input token stream.
*/
class Token {
/**
* An integer that describes the kind of this token. This numbering
* system is determined by JavaCCParser, and a table of these numbers is
* stored in the file ...Constants.java.
*/
@kotlin.jvm.JvmField
var kind: Int = 0
/** The line number of the first character of this Token. */
@kotlin.jvm.JvmField
var beginLine: Int = 0
/** The column number of the first character of this Token. */
@kotlin.jvm.JvmField
var beginColumn: Int = 0
/** The line number of the last character of this Token. */
@kotlin.jvm.JvmField
var endLine: Int = 0
/** The column number of the last character of this Token. */
@kotlin.jvm.JvmField
var endColumn: Int = 0
/**
* The string image of the token.
*/
@kotlin.jvm.JvmField
var image: String? = null
/**
* A reference to the next regular (non-special) token from the input
* stream. If this is the last token from the input stream, or if the
* token manager has not read tokens beyond this one, this field is
* set to null. This is true only if this token is also a regular
* token. Otherwise, see below for a description of the contents of
* this field.
*/
@kotlin.jvm.JvmField
var next: Token? = null
/**
* This field is used to access special tokens that occur prior to this
* token, but after the immediately preceding regular (non-special) token.
* If there are no such special tokens, this field is set to null.
* When there are more than one such special token, this field refers
* to the last of these special tokens, which in turn refers to the next
* previous special token through its specialToken field, and so on
* until the first special token (whose specialToken field is null).
* The next fields of special tokens refer to other special tokens that
* immediately follow it (without an intervening regular token). If there
* is no such token, this field is null.
*/
@kotlin.jvm.JvmField
var specialToken: Token? = null
/**
* An optional attribute value of the Token.
* Tokens which are not used as syntactic sugar will often contain
* meaningful values that will be used later on by the compiler or
* interpreter. This attribute value is often different from the image.
* Any subclass of Token that actually wants to return a non-null value can
* override this method as appropriate.
*/
val value: Any?
get() = null
/**
* No-argument constructor
*/
constructor() {}
/**
* Constructs a new token for the specified Image and Kind.
*/
@JvmOverloads
constructor(kind: Int, image: String? = null) {
this.kind = kind
this.image = image
}
/**
* Returns the image.
*/
override fun toString(): String {
return image ?: "null"
}
companion object {
/**
* Returns a new Token object, by default. However, if you want, you
* can create and return subclass objects based on the value of ofKind.
* Simply add the cases to the switch for all those special cases.
* For example, if you have a subclass of Token called IDToken that
* you want to create if ofKind is ID, simply add something like :
*
* case MyParserConstants.ID : return new IDToken(ofKind, image);
*
* to the following switch statement. Then you can cast matchedToken
* variable to the appropriate type and use sit in your lexical actions.
*/
@JvmOverloads
fun newToken(ofKind: Int, image: String? = null): Token {
when (ofKind) {
else -> return Token(ofKind, image)
}
}
}
}
/**
* Constructs a new token for the specified Image.
*/
/* JavaCC - OriginalChecksum=70d73add5771158f10d1ae81755e7cfc (do not edit this line) */