#[non_exhaustive]
pub enum TokenType {
    Eof,
    Identifier {
        identifier: ShortString,
    },
    MultiLineComment {
        blocks: usize,
        comment: ShortString,
    },
    Number {
        text: ShortString,
    },
    Shebang {
        line: ShortString,
    },
    SingleLineComment {
        comment: ShortString,
    },
    StringLiteral {
        literal: ShortString,
        multi_line: Option<usize>,
        quote_type: StringLiteralQuoteType,
    },
    Symbol {
        symbol: Symbol,
    },
    Whitespace {
        characters: ShortString,
    },
    InterpolatedString {
        literal: ShortString,
        kind: InterpolatedStringKind,
    },
}
Expand description

The type of tokens in parsed code

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Eof

End of file, should always be the very last token

§

Identifier

Fields

§identifier: ShortString

The identifier itself

An identifier, such as foo

§

MultiLineComment

Fields

§blocks: usize

Number of equals signs, if any, for the multi line comment For example, --[=[ would have a blocks value of 1

§comment: ShortString

The comment itself, ignoring opening and closing tags

A multi line comment in the format of --[[ comment ]]

§

Number

Fields

§text: ShortString

The text representing the number, includes details such as 0x

A literal number, such as 3.3

§

Shebang

Fields

§line: ShortString

The shebang line itself

A shebang line

§

SingleLineComment

Fields

§comment: ShortString

The comment, ignoring initial --

A single line comment, such as -- comment

§

StringLiteral

Fields

§literal: ShortString

The literal itself, ignoring quotation marks

§multi_line: Option<usize>

Number of equals signs used for a multi line string, if it is one For example, [=[string]=] would have a multi_line value of Some(1) [[string]] would have a multi_line value of Some(0) A string such as "string" would have a multi_line value of None

§quote_type: StringLiteralQuoteType

The type of quotation mark used to make the string

A literal string, such as “Hello, world”

§

Symbol

Fields

§symbol: Symbol

The symbol itself

A Symbol, such as local or +

§

Whitespace

Fields

§characters: ShortString

Characters consisting of the whitespace

Whitespace, such as tabs or new lines

§

InterpolatedString

Fields

§literal: ShortString

The literal itself, ignoring backticks

§kind: InterpolatedStringKind

The kind of interpolated string. If it is the beginning, middle, end, or a standalone string.

Available on crate feature roblox only.

Some form of interpolated string

Implementations§

source§

impl TokenType

source

pub fn is_trivia(&self) -> bool

Returns whether a token can be practically ignored in most cases Comments and whitespace will return true, everything else will return false

source

pub fn kind(&self) -> TokenKind

Returns the kind of the token type.

use full_moon::{ShortString, tokenizer::{TokenKind, TokenType}};

assert_eq!(
    TokenType::Identifier {
        identifier: ShortString::new("hello")
    }.kind(),
    TokenKind::Identifier,
);
source

pub fn spaces(spaces: usize) -> Self

Returns a whitespace TokenType consisting of spaces

source

pub fn tabs(tabs: usize) -> Self

Returns a whitespace TokenType consisting of tabs

Trait Implementations§

source§

impl Clone for TokenType

source§

fn clone(&self) -> TokenType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TokenType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TokenType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<TokenType> for Result<TokenType, TokenizerErrorType>

source§

fn from(token_type: TokenType) -> Result<TokenType, TokenizerErrorType>

Converts to this type from the input type.
source§

impl PartialEq<TokenType> for TokenType

source§

fn eq(&self, other: &TokenType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TokenType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for TokenType

source§

impl StructuralEq for TokenType

source§

impl StructuralPartialEq for TokenType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,