|
int | bison_lex (YYSTYPE *lvalp, YYLTYPE *llocp) |
|
template<typename... Args> |
Node * | make_node (YYLTYPE &loc, Node::Type type, Args &&... args) |
| Wrapper around the node constructor. More...
|
|
Node * | make_leaf (YYLTYPE &loc, Node::Type type) |
| Wrapper around constructing a dataless leaf node. More...
|
|
Node * | make_poison (YYLTYPE &loc) |
| See make_node.
|
|
Node * | make_operator (YYLTYPE &loc, Operator::Type type) |
| See make_node.
|
|
Node * | make_literal (YYLTYPE &loc, Literal::Type type, char const *value) |
| See make_node.
|
|
Node * | make_identifier (YYLTYPE &loc, char const *name) |
| See make_node.
|
|
Node * | make_modifier (YYLTYPE &loc, Modifier::Type type) |
| See make_node.
|
|
Node * | make_basic_type (YYLTYPE &loc, BasicType::Type type) |
| See make_node.
|
|
void | report_parser_error (YYLTYPE &loc, char const *msg, std::initializer_list< YYLTYPE > ranges={}) |
| Report a parser or lexer error to the diagnostic engine. More...
|
|
Definition at line 20 of file joos1w_lexer_internal.h.
◆ make_leaf()
Node* Joos1WLexer::make_leaf |
( |
YYLTYPE & |
loc, |
|
|
Node::Type |
type |
|
) |
| |
|
inline |
Wrapper around constructing a dataless leaf node.
- Parameters
-
type | The type of the leaf node |
- Returns
- The newly created leaf node
Definition at line 52 of file joos1w_lexer_internal.h.
53 void* bytes = alloc.allocate_bytes(
sizeof(
Node));
54 return new(bytes)
Node(make_range(loc), type);
The basic type-tagged node in the parse tree.
References parsetree::Node::Node().
◆ make_node()
template<typename... Args>
Node* Joos1WLexer::make_node |
( |
YYLTYPE & |
loc, |
|
|
Node::Type |
type, |
|
|
Args &&... |
args |
|
) |
| |
|
inline |
Wrapper around the node constructor.
- Parameters
-
...args | The arguments to the node constructor |
- Returns
- The newly created node
Definition at line 44 of file joos1w_lexer_internal.h.
45 void* bytes = alloc.allocate_bytes(
sizeof(
Node));
47 Node(make_range(loc), alloc, type, std::forward<Args>(args)...);
◆ report_parser_error()
void Joos1WLexer::report_parser_error |
( |
YYLTYPE & |
loc, |
|
|
char const * |
msg, |
|
|
std::initializer_list< YYLTYPE > |
ranges = {} |
|
) |
| |
|
inline |
Report a parser or lexer error to the diagnostic engine.
- Parameters
-
loc | The location of the error |
msg | The message to report |
ranges | List of additional ranges to report |
Definition at line 73 of file joos1w_lexer_internal.h.
76 auto os = diag->ReportError(make_range(loc));
78 size_t length = std::min(1024UL, strlen(msg) + 1);
79 char* ptr =
reinterpret_cast<char*
>(alloc.allocate(length));
80 strncpy(ptr, msg, length);
81 messages.push_back(ptr);
82 os << std::string_view{ptr};
83 for(
auto const& range : ranges) os << make_range(range);
The documentation for this class was generated from the following files: