ROS 2 rclcpp + rcl - jazzy
jazzy
ROS 2 C++ Client Library with ROS Client Library
|
#include <stddef.h>
#include "rcl/allocator.h"
#include "rcl/macros.h"
#include "rcl/types.h"
#include "rcl/visibility_control.h"
Go to the source code of this file.
Typedefs | |
typedef enum rcl_lexeme_e | rcl_lexeme_t |
Type of lexeme found by lexical analysis. | |
Enumerations | |
enum | rcl_lexeme_e { RCL_LEXEME_NONE = 0 , RCL_LEXEME_EOF = 1 , RCL_LEXEME_TILDE_SLASH = 2 , RCL_LEXEME_URL_SERVICE = 3 , RCL_LEXEME_URL_TOPIC = 4 , RCL_LEXEME_COLON = 5 , RCL_LEXEME_NODE = 6 , RCL_LEXEME_NS = 7 , RCL_LEXEME_SEPARATOR = 8 , RCL_LEXEME_BR1 = 9 , RCL_LEXEME_BR2 = 10 , RCL_LEXEME_BR3 = 11 , RCL_LEXEME_BR4 = 12 , RCL_LEXEME_BR5 = 13 , RCL_LEXEME_BR6 = 14 , RCL_LEXEME_BR7 = 15 , RCL_LEXEME_BR8 = 16 , RCL_LEXEME_BR9 = 17 , RCL_LEXEME_TOKEN = 18 , RCL_LEXEME_FORWARD_SLASH = 19 , RCL_LEXEME_WILD_ONE = 20 , RCL_LEXEME_WILD_MULTI = 21 , RCL_LEXEME_DOT = 22 } |
Type of lexeme found by lexical analysis. More... | |
Functions | |
RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t | rcl_lexer_analyze (const char *text, rcl_lexeme_t *lexeme, size_t *length) |
Do lexical analysis on a string. More... | |
enum rcl_lexeme_e |
Type of lexeme found by lexical analysis.
RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_lexer_analyze | ( | const char * | text, |
rcl_lexeme_t * | lexeme, | ||
size_t * | length | ||
) |
Do lexical analysis on a string.
This function analyzes a string to see if it starts with a valid lexeme. If the string does not begin with a valid lexeme then lexeme will be RCL_LEXEME_NONE, and the length will be set to include the character that made it impossible. It will never be longer than the length of the string. If the first character is '\0' then lexeme will be RCL_LEXEME_EOF.
Attribute | Adherence |
---|---|
Allocates Memory | No |
Thread-Safe | Yes |
Uses Atomics | No |
Lock-Free | Yes |
[in] | text | The string to analyze. |
[out] | lexeme | The type of lexeme found in the string. |
[out] | length | The length of text in the string that constitutes the found lexeme. |
Definition at line 598 of file lexer.c.
References rcl_lexer_state_s::else_movement, rcl_lexer_state_s::else_state, rcl_lexer_transition_s::range_end, rcl_lexer_transition_s::range_start, RCL_LEXEME_EOF, RCL_RET_ERROR, RCL_RET_INVALID_ARGUMENT, RCL_RET_OK, rcl_lexer_transition_s::to_state, and rcl_lexer_state_s::transitions.
Referenced by rcl_lexer_lookahead2_peek(), and rcl_lexer_lookahead2_peek2().