luau_parser/types/expression/var.rs
1use luau_lexer::prelude::Token;
2use luau_parser_derive::{Print, Range};
3
4use crate::types::TableAccess;
5
6/// Possible ways in which a variable can be referenced.
7#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord, Range, Print)]
8#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
9pub enum Var {
10 /// This [`Var`] had a syntax error.
11 #[default]
12 ERROR,
13
14 /// A simple reference to the variable.
15 ///
16 /// ```lua
17 /// local _ = foo
18 /// ```
19 Name(Token),
20
21 /// A field accessed from a table.
22 ///
23 /// ```lua
24 /// local _ = t.foo
25 /// ```
26 TableAccess(TableAccess),
27}