UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Verse::Grammar Namespace Reference

Classes

struct  block
 
struct  encoding
 
struct  generate
 
struct  nothing
 
struct  parser
 
struct  parser_base
 
struct  result
 
struct  scoped_guard
 
struct  snippet
 
struct  text
 
struct  token
 
struct  token_info
 
struct  token_set
 

Typedefs

using int64 = long long
 
using nat8 = unsigned char
 
using nat16 = unsigned short
 
using nat32 = unsigned int
 
using nat64 = unsigned long long
 
using nat = unsigned long long
 
using char32 = char32_t
 
using char8 = char
 

Enumerations

enum class  prec : nat8 {
  Never , List , Commas , Expr ,
  Fun , Def , Or , And ,
  Not , Eq , NotEq , Less ,
  Greater , Choose , To , Add ,
  Mul , Prefix , Call , Base ,
  Nothing
}
 
enum class  assoc : nat8 { None , Postfix , InfixLeft , InfixRight }
 
enum class  form : nat8 { List , Commas }
 
enum class  punctuation : nat8 {
  None , Braces , Parens , Brackets ,
  AngleBrackets , Qualifier , Dot , Colon ,
  Ind
}
 
enum class  place : nat16 {
  UTF8 , Printable , BlockCmt , LineCmt ,
  IndCmt , Space , String , Content
}
 
enum class  mode { None , Open , Closed , With }
 

Functions

template<class t , nat n>
constexpr nat ArraySize (t(&)[n])
 
void Err ()
 
constexpr nat Length (const text &Text)
 
bool operator== (const text &as, const text &bs)
 
bool operator!= (const text &as, const text &bs)
 
constexpr bool IsSpace (char8 c)
 
constexpr bool IsNewLine (char8 c)
 
constexpr bool IsEnding (char8 c)
 
constexpr bool IsAlpha (char8 c)
 
constexpr bool IsDigit (char8 c)
 
constexpr bool IsAlnum (char8 c)
 
constexpr bool IsHex (char8 c)
 
constexpr nat8 DigitValue (char8 c)
 
constexpr bool IsIdentifierQuotable (char8 c0, char8 c1)
 
constexpr bool IsStringBackslashLiteral (char8 c0, char8 c1)
 
char32 EncodedChar32 (const char8 *s, nat Count)
 
template<place Place>
nat EncodedLength (const char8 *s)
 
bool ParenthesizePrefix (const encoding &Encoding, prec StringPrec)
 
bool ParenthesizePostfix (const encoding &Encoding, prec StringPrec)
 
template<class gen_t >
result< typename gen_t::syntax_t, typename gen_t::error_t > File (gen_t &Gen, nat n, const char8 *s, nat Line=1)
 

Variables

const struct token_set AllTokens AllowLess AllowNotEq = ~token_set{u8">",u8">=",u8"<",u8"<="}
 
constexpr token_info Tokens []
 
const token_set AllTokens = ~token_set{}
 
const token_set AllowLess = ~token_set{u8">",u8">="}
 
const token_set InPrefixes = token_set{u8":",u8"in"}
 
const token_set StopList = token_set{u8":)",u8")",u8"]",u8"}",token::NewLine(),token::End()}
 
const token_set StopExpr = StopList | token_set{u8";",u8","}
 
const token_set StopFun = StopExpr | token_set{u8"@"}
 
const token_set StopDef = StopFun | token_set{u8"=>",u8"next",u8"over",u8"when",u8"while"}
 
const token_set BracePostfixes = token_set{u8"{"}
 
const token_set BlockPostfixes = token_set{u8"{",u8".",u8":"}
 
const token_set ParenPostfixes = token_set{u8"("}
 
const token_set WithPostfixes = token_set{u8"with",u8"<"}
 
const token_set InvokePostfixes = BlockPostfixes | ParenPostfixes | WithPostfixes | token_set{u8"in",token::NewLine()}
 
const token_set MarkupPostfixes = token_set{u8",",u8";",u8">",u8":>"}
 
const token_set DefPostfixes = token_set{u8"=",u8":=",u8"+=",u8"-=",u8"*=",u8"/="}
 

Typedef Documentation

◆ char32

◆ char8

◆ int64

◆ nat

◆ nat16

◆ nat32

◆ nat64

◆ nat8

Enumeration Type Documentation

◆ assoc

Enumerator
None 
Postfix 
InfixLeft 
InfixRight 

◆ form

enum class Verse::Grammar::form : nat8
strong
Enumerator
List 
Commas 

◆ mode

enum class Verse::Grammar::mode
strong
Enumerator
None 
Open 
Closed 
With 

◆ place

Enumerator
UTF8 
Printable 
BlockCmt 
LineCmt 
IndCmt 
Space 
String 
Content 

◆ prec

enum class Verse::Grammar::prec : nat8
strong
Enumerator
Never 
List 
Commas 
Expr 
Fun 
Def 
Or 
And 
Not 
Eq 
NotEq 
Less 
Greater 
Choose 
To 
Add 
Mul 
Prefix 
Call 
Base 
Nothing 

◆ punctuation

Enumerator
None 
Braces 
Parens 
Brackets 
AngleBrackets 
Qualifier 
Dot 
Colon 
Ind 

Function Documentation

◆ ArraySize()

template<class t , nat n>
constexpr nat Verse::Grammar::ArraySize ( t(&)  [n])
constexpr

◆ DigitValue()

constexpr nat8 Verse::Grammar::DigitValue ( char8  c)
constexpr

◆ EncodedChar32()

char32 Verse::Grammar::EncodedChar32 ( const char8 s,
nat  Count 
)
inline

◆ EncodedLength()

template<place Place>
nat Verse::Grammar::EncodedLength ( const char8 s)

◆ Err()

void Verse::Grammar::Err ( )
inline

◆ File()

template<class gen_t >
result< typename gen_t::syntax_t, typename gen_t::error_t > Verse::Grammar::File ( gen_t &  Gen,
nat  n,
const char8 s,
nat  Line = 1 
)

◆ IsAlnum()

constexpr bool Verse::Grammar::IsAlnum ( char8  c)
constexpr

◆ IsAlpha()

constexpr bool Verse::Grammar::IsAlpha ( char8  c)
constexpr

◆ IsDigit()

constexpr bool Verse::Grammar::IsDigit ( char8  c)
constexpr

◆ IsEnding()

constexpr bool Verse::Grammar::IsEnding ( char8  c)
constexpr

◆ IsHex()

constexpr bool Verse::Grammar::IsHex ( char8  c)
constexpr

◆ IsIdentifierQuotable()

constexpr bool Verse::Grammar::IsIdentifierQuotable ( char8  c0,
char8  c1 
)
constexpr

◆ IsNewLine()

constexpr bool Verse::Grammar::IsNewLine ( char8  c)
constexpr

◆ IsSpace()

constexpr bool Verse::Grammar::IsSpace ( char8  c)
constexpr

◆ IsStringBackslashLiteral()

constexpr bool Verse::Grammar::IsStringBackslashLiteral ( char8  c0,
char8  c1 
)
constexpr

◆ Length()

constexpr nat Verse::Grammar::Length ( const text Text)
constexpr

◆ operator!=()

bool Verse::Grammar::operator!= ( const text as,
const text bs 
)
inline

◆ operator==()

bool Verse::Grammar::operator== ( const text as,
const text bs 
)
inline

◆ ParenthesizePostfix()

bool Verse::Grammar::ParenthesizePostfix ( const encoding Encoding,
prec  StringPrec 
)
inline

◆ ParenthesizePrefix()

bool Verse::Grammar::ParenthesizePrefix ( const encoding Encoding,
prec  StringPrec 
)
inline

Variable Documentation

◆ AllowLess

const token_set Verse::Grammar::AllowLess = ~token_set{u8">",u8">="}
inline

◆ AllowNotEq

const token_set Verse::Grammar::AllowNotEq = ~token_set{u8">",u8">=",u8"<",u8"<="}
inline

◆ AllTokens

const token_set Verse::Grammar::AllTokens = ~token_set{}
inline

◆ BlockPostfixes

const token_set Verse::Grammar::BlockPostfixes = token_set{u8"{",u8".",u8":"}
inline

◆ BracePostfixes

const token_set Verse::Grammar::BracePostfixes = token_set{u8"{"}
inline

◆ DefPostfixes

const token_set Verse::Grammar::DefPostfixes = token_set{u8"=",u8":=",u8"+=",u8"-=",u8"*=",u8"/="}
inline

◆ InPrefixes

const token_set Verse::Grammar::InPrefixes = token_set{u8":",u8"in"}
inline

◆ InvokePostfixes

const token_set Verse::Grammar::InvokePostfixes = BlockPostfixes | ParenPostfixes | WithPostfixes | token_set{u8"in",token::NewLine()}
inline

◆ MarkupPostfixes

const token_set Verse::Grammar::MarkupPostfixes = token_set{u8",",u8";",u8">",u8":>"}
inline

◆ ParenPostfixes

const token_set Verse::Grammar::ParenPostfixes = token_set{u8"("}
inline

◆ StopDef

const token_set Verse::Grammar::StopDef = StopFun | token_set{u8"=>",u8"next",u8"over",u8"when",u8"while"}
inline

◆ StopExpr

const token_set Verse::Grammar::StopExpr = StopList | token_set{u8";",u8","}
inline

◆ StopFun

const token_set Verse::Grammar::StopFun = StopExpr | token_set{u8"@"}
inline

◆ StopList

const token_set Verse::Grammar::StopList = token_set{u8":)",u8")",u8"]",u8"}",token::NewLine(),token::End()}
inline

◆ Tokens

constexpr token_info Verse::Grammar::Tokens[]
constexpr

◆ WithPostfixes

const token_set Verse::Grammar::WithPostfixes = token_set{u8"with",u8"<"}
inline