Add p_set_input_index()
This commit is contained in:
1 parent
b4d43d39f6
commit
1c74e747e1
14 files changed
+401
-2
No files matched your search
@@ -1377,6 +1377,27 @@ size_t <%= @grammar.prefix %>input_index(<%= @grammar.prefix %>context_t * conte
|
||||
return context->input_index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the current input text byte offset.
|
||||
*
|
||||
* This moves the lexer's read cursor to the given byte offset (measured from
|
||||
* the start of the input text passed to <%= @grammar.prefix %>context_new()).
|
||||
* It can be used together with <%= @grammar.prefix %>set_position() to rewind
|
||||
* the input part-way through a parse in order to re-read an earlier section of
|
||||
* the input. The byte offset is not validated; the caller is responsible for
|
||||
* providing an offset within the bounds of the input text. A value previously
|
||||
* returned by <%= @grammar.prefix %>input_index() is a suitable argument.
|
||||
*
|
||||
* @param context
|
||||
* Lexer/parser context structure.
|
||||
* @param input_index
|
||||
* Input text byte offset to set.
|
||||
*/
|
||||
void <%= @grammar.prefix %>set_input_index(<%= @grammar.prefix %>context_t * context, size_t input_index)
|
||||
{
|
||||
context->input_index = input_index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the user terminate code.
|
||||
*
|
||||
|
||||
@@ -1456,6 +1456,27 @@ public size_t <%= @grammar.prefix %>input_index(<%= @grammar.prefix %>context_t
|
||||
return context.input_index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the current input text byte offset.
|
||||
*
|
||||
* This moves the lexer's read cursor to the given byte offset (measured from
|
||||
* the start of the input text passed to <%= @grammar.prefix %>context_new()).
|
||||
* It can be used together with <%= @grammar.prefix %>set_position() to rewind
|
||||
* the input part-way through a parse in order to re-read an earlier section of
|
||||
* the input. The byte offset is not validated; the caller is responsible for
|
||||
* providing an offset within the bounds of the input text. A value previously
|
||||
* returned by <%= @grammar.prefix %>input_index() is a suitable argument.
|
||||
*
|
||||
* @param context
|
||||
* Lexer/parser context structure.
|
||||
* @param input_index
|
||||
* Input text byte offset to set.
|
||||
*/
|
||||
public void <%= @grammar.prefix %>set_input_index(<%= @grammar.prefix %>context_t * context, size_t input_index)
|
||||
{
|
||||
context.input_index = input_index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the user terminate code.
|
||||
*
|
||||
|
||||
@@ -241,6 +241,8 @@ void <%= @grammar.prefix %>set_position(<%= @grammar.prefix %>context_t * contex
|
||||
|
||||
size_t <%= @grammar.prefix %>input_index(<%= @grammar.prefix %>context_t * context);
|
||||
|
||||
void <%= @grammar.prefix %>set_input_index(<%= @grammar.prefix %>context_t * context, size_t input_index);
|
||||
|
||||
size_t <%= @grammar.prefix %>user_terminate_code(<%= @grammar.prefix %>context_t * context);
|
||||
|
||||
<%= @grammar.prefix %>token_t <%= @grammar.prefix %>token(<%= @grammar.prefix %>context_t * context);
|
||||
Reference in new issue
Block a user