Yume
Classes | Typedefs | Variables
yume::ast::parser Namespace Reference

Classes

struct  Parser
 
class  TokenRange
 

Typedefs

using TokenAtom = std::pair< Token::Type, Atom >
 

Variables

static constexpr auto Word = Token::Type::Word
 
static constexpr auto Symbol = Token::Type::Symbol
 
static const TokenAtom KWD_IF = {Word, "if"_a}
 
static const TokenAtom KWD_IS = {Word, "is"_a}
 
static const TokenAtom KWD_DEF = {Word, "def"_a}
 
static const TokenAtom KWD_END = {Word, "end"_a}
 
static const TokenAtom KWD_LET = {Word, "let"_a}
 
static const TokenAtom KWD_PTR = {Word, "ptr"_a}
 
static const TokenAtom KWD_MUT = {Word, "mut"_a}
 
static const TokenAtom KWD_REF = {Word, "ref"_a}
 
static const TokenAtom KWD_NEW = {Word, "new"_a}
 
static const TokenAtom KWD_ELSE = {Word, "else"_a}
 
static const TokenAtom KWD_SELF_ITEM = {Word, "self"_a}
 
static const TokenAtom KWD_SELF_TYPE = {Word, "Self"_a}
 
static const TokenAtom KWD_THEN = {Word, "then"_a}
 
static const TokenAtom KWD_TRUE = {Word, "true"_a}
 
static const TokenAtom KWD_TYPE = {Word, "type"_a}
 
static const TokenAtom KWD_FALSE = {Word, "false"_a}
 
static const TokenAtom KWD_WHILE = {Word, "while"_a}
 
static const TokenAtom KWD_CONST = {Word, "const"_a}
 
static const TokenAtom KWD_STRUCT = {Word, "struct"_a}
 
static const TokenAtom KWD_RETURN = {Word, "return"_a}
 
static const TokenAtom KWD_ABSTRACT = {Word, "abstract"_a}
 
static const TokenAtom KWD_INTERFACE = {Word, "interface"_a}
 
static const TokenAtom KWD_EXTERN = {Word, "__extern__"_a}
 
static const TokenAtom KWD_VARARGS = {Word, "__varargs__"_a}
 
static const TokenAtom KWD_PRIMITIVE = {Word, "__primitive__"_a}
 
static const TokenAtom SYM_COMMA = {Symbol, ","_a}
 
static const TokenAtom SYM_DOT = {Symbol, "."_a}
 
static const TokenAtom SYM_EQ = {Symbol, "="_a}
 
static const TokenAtom SYM_AT = {Symbol, "@"_a}
 
static const TokenAtom SYM_LPAREN = {Symbol, "("_a}
 
static const TokenAtom SYM_RPAREN = {Symbol, ")"_a}
 
static const TokenAtom SYM_LBRACKET = {Symbol, "["_a}
 
static const TokenAtom SYM_RBRACKET = {Symbol, "]"_a}
 
static const TokenAtom SYM_LBRACE = {Symbol, "{"_a}
 
static const TokenAtom SYM_RBRACE = {Symbol, "}"_a}
 
static const TokenAtom SYM_EQ_EQ = {Symbol, "=="_a}
 
static const TokenAtom SYM_NEQ = {Symbol, "!="_a}
 
static const TokenAtom SYM_AND = {Symbol, "&"_a}
 
static const TokenAtom SYM_LT = {Symbol, "<"_a}
 
static const TokenAtom SYM_GT = {Symbol, ">"_a}
 
static const TokenAtom SYM_PLUS = {Symbol, "+"_a}
 
static const TokenAtom SYM_MINUS = {Symbol, "-"_a}
 
static const TokenAtom SYM_PERCENT = {Symbol, "%"_a}
 
static const TokenAtom SYM_SLASH_SLASH = {Symbol, "//"_a}
 
static const TokenAtom SYM_STAR = {Symbol, "*"_a}
 
static const TokenAtom SYM_BANG = {Symbol, "!"_a}
 
static const TokenAtom SYM_COLON = {Symbol, ":"_a}
 
static const TokenAtom SYM_COLON_COLON = {Symbol, "::"_a}
 
static const TokenAtom SYM_OR_OR = {Symbol, "||"_a}
 
static const TokenAtom SYM_AND_AND = {Symbol, "&&"_a}
 
static const TokenAtom SYM_ARROW = {Symbol, "->"_a}
 
static const TokenAtom SYM_DOLLAR = {Symbol, "$"_a}
 

Typedef Documentation

◆ TokenAtom

using yume::ast::parser::TokenAtom = typedef std::pair<Token::Type, Atom>

Definition at line 74 of file parser.hpp.

Variable Documentation

◆ KWD_ABSTRACT

const TokenAtom yume::ast::parser::KWD_ABSTRACT = {Word, "abstract"_a}
static

Definition at line 99 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_fn_decl().

◆ KWD_CONST

const TokenAtom yume::ast::parser::KWD_CONST = {Word, "const"_a}
static

◆ KWD_DEF

const TokenAtom yume::ast::parser::KWD_DEF = {Word, "def"_a}
static

◆ KWD_ELSE

const TokenAtom yume::ast::parser::KWD_ELSE = {Word, "else"_a}
static

Definition at line 88 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_if_stmt().

◆ KWD_END

const TokenAtom yume::ast::parser::KWD_END = {Word, "end"_a}
static

◆ KWD_EXTERN

const TokenAtom yume::ast::parser::KWD_EXTERN = {Word, "__extern__"_a}
static

Definition at line 102 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_fn_decl().

◆ KWD_FALSE

const TokenAtom yume::ast::parser::KWD_FALSE = {Word, "false"_a}
static

Definition at line 94 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_primary().

◆ KWD_IF

const TokenAtom yume::ast::parser::KWD_IF = {Word, "if"_a}
static

◆ KWD_INTERFACE

const TokenAtom yume::ast::parser::KWD_INTERFACE = {Word, "interface"_a}
static

Definition at line 100 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_stmt().

◆ KWD_IS

const TokenAtom yume::ast::parser::KWD_IS = {Word, "is"_a}
static

Definition at line 80 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_struct_decl().

◆ KWD_LET

const TokenAtom yume::ast::parser::KWD_LET = {Word, "let"_a}
static

◆ KWD_MUT

const TokenAtom yume::ast::parser::KWD_MUT = {Word, "mut"_a}
static

◆ KWD_NEW

const TokenAtom yume::ast::parser::KWD_NEW = {Word, "new"_a}
static

Definition at line 87 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_ctor_decl().

◆ KWD_PRIMITIVE

const TokenAtom yume::ast::parser::KWD_PRIMITIVE = {Word, "__primitive__"_a}
static

Definition at line 104 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_fn_decl().

◆ KWD_PTR

const TokenAtom yume::ast::parser::KWD_PTR = {Word, "ptr"_a}
static

◆ KWD_REF

const TokenAtom yume::ast::parser::KWD_REF = {Word, "ref"_a}
static

◆ KWD_RETURN

const TokenAtom yume::ast::parser::KWD_RETURN = {Word, "return"_a}
static

◆ KWD_SELF_ITEM

const TokenAtom yume::ast::parser::KWD_SELF_ITEM = {Word, "self"_a}
static

Definition at line 89 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_type_name().

◆ KWD_SELF_TYPE

const TokenAtom yume::ast::parser::KWD_SELF_TYPE = {Word, "Self"_a}
static

◆ KWD_STRUCT

const TokenAtom yume::ast::parser::KWD_STRUCT = {Word, "struct"_a}
static

◆ KWD_THEN

const TokenAtom yume::ast::parser::KWD_THEN = {Word, "then"_a}
static

Definition at line 91 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_if_stmt().

◆ KWD_TRUE

const TokenAtom yume::ast::parser::KWD_TRUE = {Word, "true"_a}
static

Definition at line 92 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_primary().

◆ KWD_TYPE

const TokenAtom yume::ast::parser::KWD_TYPE = {Word, "type"_a}
static

◆ KWD_VARARGS

const TokenAtom yume::ast::parser::KWD_VARARGS = {Word, "__varargs__"_a}
static

Definition at line 103 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_fn_decl().

◆ KWD_WHILE

const TokenAtom yume::ast::parser::KWD_WHILE = {Word, "while"_a}
static

◆ SYM_AND

const TokenAtom yume::ast::parser::SYM_AND = {Symbol, "&"_a}
static

Definition at line 118 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_AND_AND

const TokenAtom yume::ast::parser::SYM_AND_AND = {Symbol, "&&"_a}
static

Definition at line 130 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_logical_and().

◆ SYM_ARROW

const TokenAtom yume::ast::parser::SYM_ARROW = {Symbol, "->"_a}
static

◆ SYM_AT

const TokenAtom yume::ast::parser::SYM_AT = {Symbol, "@"_a}
static

◆ SYM_BANG

const TokenAtom yume::ast::parser::SYM_BANG = {Symbol, "!"_a}
static

◆ SYM_COLON

const TokenAtom yume::ast::parser::SYM_COLON = {Symbol, ":"_a}
static

◆ SYM_COLON_COLON

const TokenAtom yume::ast::parser::SYM_COLON_COLON = {Symbol, "::"_a}
static

◆ SYM_COMMA

const TokenAtom yume::ast::parser::SYM_COMMA = {Symbol, ","_a}
static

◆ SYM_DOLLAR

const TokenAtom yume::ast::parser::SYM_DOLLAR = {Symbol, "$"_a}
static

Definition at line 132 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_primary().

◆ SYM_DOT

const TokenAtom yume::ast::parser::SYM_DOT = {Symbol, "."_a}
static

◆ SYM_EQ

const TokenAtom yume::ast::parser::SYM_EQ = {Symbol, "="_a}
static

◆ SYM_EQ_EQ

const TokenAtom yume::ast::parser::SYM_EQ_EQ = {Symbol, "=="_a}
static

Definition at line 116 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_GT

const TokenAtom yume::ast::parser::SYM_GT = {Symbol, ">"_a}
static

Definition at line 120 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_LBRACE

const TokenAtom yume::ast::parser::SYM_LBRACE = {Symbol, "{"_a}
static

◆ SYM_LBRACKET

const TokenAtom yume::ast::parser::SYM_LBRACKET = {Symbol, "["_a}
static

◆ SYM_LPAREN

const TokenAtom yume::ast::parser::SYM_LPAREN = {Symbol, "("_a}
static

◆ SYM_LT

const TokenAtom yume::ast::parser::SYM_LT = {Symbol, "<"_a}
static

Definition at line 119 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_MINUS

const TokenAtom yume::ast::parser::SYM_MINUS = {Symbol, "-"_a}
static

◆ SYM_NEQ

const TokenAtom yume::ast::parser::SYM_NEQ = {Symbol, "!="_a}
static

Definition at line 117 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_OR_OR

const TokenAtom yume::ast::parser::SYM_OR_OR = {Symbol, "||"_a}
static

Definition at line 129 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_logical_or().

◆ SYM_PERCENT

const TokenAtom yume::ast::parser::SYM_PERCENT = {Symbol, "%"_a}
static

Definition at line 123 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_PLUS

const TokenAtom yume::ast::parser::SYM_PLUS = {Symbol, "+"_a}
static

◆ SYM_RBRACE

const TokenAtom yume::ast::parser::SYM_RBRACE = {Symbol, "}"_a}
static

◆ SYM_RBRACKET

const TokenAtom yume::ast::parser::SYM_RBRACKET = {Symbol, "]"_a}
static

◆ SYM_RPAREN

const TokenAtom yume::ast::parser::SYM_RPAREN = {Symbol, ")"_a}
static

◆ SYM_SLASH_SLASH

const TokenAtom yume::ast::parser::SYM_SLASH_SLASH = {Symbol, "//"_a}
static

Definition at line 124 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ SYM_STAR

const TokenAtom yume::ast::parser::SYM_STAR = {Symbol, "*"_a}
static

Definition at line 125 of file parser.hpp.

Referenced by yume::ast::parser::Parser::operators().

◆ Symbol

constexpr auto yume::ast::parser::Symbol = Token::Type::Symbol
staticconstexpr

Definition at line 77 of file parser.hpp.

Referenced by yume::ast::parser::Parser::parse_fn_name().

◆ Word

constexpr auto yume::ast::parser::Word = Token::Type::Word
staticconstexpr