CYD-UI
A C++ library for building native graphic user interfaces
Loading...
Searching...
No Matches
parser.cppm File Reference
import cydui.graphics.types;
import cydui.styling.rules;
import cydui.dimensions;
import cydui.styling.selectors;
import fabric.grammar.operators;
import fabric.grammar;
import reflect.serialize;
import reflect;
import std;
+ Include dependency graph for parser.cppm:

Go to the source code of this file.

Macros

#define TERMINAL(C)
 
#define TERMINAL_DIGIT(C)
 
#define TERMINAL_W_NAME(C, NAME)
 
#define RULE_EXPR__(...)
 
#define RULE(NAME)
 
#define TRULE(NAME)
 
#define RULE_ACTION__(...)
 
#define ARULE_DATA_TYPE__(...)
 
#define RULE_EXPR_W_ACTION__(...)
 
#define ARULE(NAME)
 
#define GRAMMAR(NAME)
 
#define START(RULE)
 

Macro Definition Documentation

◆ ARULE

#define ARULE ( NAME)
Value:
struct NAME: public fabric::node_t { \
static constexpr const char* name = #NAME; \
static constexpr bool transient = false; \
using sptr = std::shared_ptr<NAME>; \
NAME(): fabric::node_t(refl::type_id<NAME>) {} \
#define RULE_EXPR_W_ACTION__(...)
Definition parser.cppm:40

Definition at line 41 of file parser.cppm.

◆ ARULE_DATA_TYPE__

#define ARULE_DATA_TYPE__ ( ...)
Value:
__VA_ARGS__ data{}; RULE_ACTION__
#define RULE_ACTION__(...)
Definition parser.cppm:38

Definition at line 39 of file parser.cppm.

◆ GRAMMAR

#define GRAMMAR ( NAME)
Value:
struct NAME; \
namespace grammar_metadata { \
struct NAME { \
static constexpr const char* name = #NAME; \
}; \
} \
struct NAME: grammar_metadata::NAME

Definition at line 48 of file parser.cppm.

◆ RULE

#define RULE ( NAME)
Value:
struct NAME: public fabric::node_t { \
static constexpr const char* name = #NAME; \
static constexpr bool transient = false; \
using sptr = std::shared_ptr<NAME>; \
NAME(): fabric::node_t(refl::type_id<NAME>) {} \
#define RULE_EXPR__(...)
Definition parser.cppm:23

Definition at line 24 of file parser.cppm.

◆ RULE_ACTION__

#define RULE_ACTION__ ( ...)
Value:
static void action(const sptr& $node) __VA_ARGS__ }

Definition at line 38 of file parser.cppm.

◆ RULE_EXPR__

#define RULE_EXPR__ ( ...)
Value:
using rule = decltype(__VA_ARGS__);}

Definition at line 23 of file parser.cppm.

◆ RULE_EXPR_W_ACTION__

#define RULE_EXPR_W_ACTION__ ( ...)
Value:
using rule = decltype(__VA_ARGS__); ARULE_DATA_TYPE__
#define ARULE_DATA_TYPE__(...)
Definition parser.cppm:39

Definition at line 40 of file parser.cppm.

◆ START

#define START ( RULE)
Value:
using start = RULE
#define RULE(NAME)
Definition parser.cppm:24

Definition at line 57 of file parser.cppm.

◆ TERMINAL

#define TERMINAL ( C)
export
Value:
using C##_t = fabric::terminal<#C[0]>; static C##_t C

Definition at line 19 of file parser.cppm.

◆ TERMINAL_DIGIT

#define TERMINAL_DIGIT ( C)
Value:
using d##C##_t = fabric::terminal<#C[0]>; static d##C##_t d##C

Definition at line 20 of file parser.cppm.

◆ TERMINAL_W_NAME

#define TERMINAL_W_NAME ( C,
NAME )
Value:
using NAME##_t = fabric::terminal<C>; static NAME##_t NAME

Definition at line 21 of file parser.cppm.

◆ TRULE

#define TRULE ( NAME)
Value:
struct NAME: public fabric::node_t { \
static constexpr const char* name = #NAME; \
static constexpr bool transient = true; \
using sptr = std::shared_ptr<NAME>; \
NAME(): fabric::node_t(refl::type_id<NAME>) {} \

Definition at line 31 of file parser.cppm.