0.6.0
Loading...
Searching...
No Matches
mod_nts_language Module Reference

Data Types

interface  block_function
 
interface  parse_block_routine
 

Functions/Subroutines

recursive subroutine nts_expression_read (parser, expr)
 
recursive subroutine nts_expression_read_ternary (parser, expr)
 
recursive subroutine nts_expression_read_or_and (parser, expr)
 
recursive subroutine nts_expression_read_comparison (parser, expr)
 
recursive subroutine nts_expression_read_additive (parser, expr)
 
recursive subroutine nts_expression_read_multiplicative (parser, expr)
 
recursive subroutine nts_expression_read_unary (parser, expr)
 
recursive subroutine nts_expression_read_power (parser, expr)
 
recursive subroutine nts_expression_read_const (parser, expr)
 
recursive integer function nts_evaluate_integer_expression (parser)
 Evaluate an integer expression.
 
recursive integer function nts_evaluate_integer_expression_positive (parser)
 Evaluate a positive (>=0) integer expression.
 
recursive integer function nts_evaluate_integer_expression_spositive (parser)
 Evaluate a strictly positive (>0) integer expression.
 
recursive integer function nts_evaluate_integer_expression_negative (parser)
 Evaluate a negative (<=0) integer expression.
 
recursive integer function nts_evaluate_integer_expression_snegative (parser)
 Evaluate a strictly negative (<0) integer expression.
 
recursive integer function nts_evaluate_integer_expression_within (parser, a, b)
 Evaluate an integer expression within ithe given interval [a,b].
 
recursive double precision function nts_evaluate_double_expression (parser)
 Evaluate a double precision expression.
 
recursive double precision function nts_evaluate_double_expression_positive (parser)
 Evaluate a positive (>=0) double precision expression (.
 
recursive double precision function nts_evaluate_double_expression_spositive (parser)
 Evaluate a strictly positive (>0) double precision expression (.
 
recursive character(len=:) function, allocatable nts_evaluate_string_expression (parser)
 Evaluate a string precision expression.
 
recursive logical function nts_evaluate_boolean_expression (parser)
 Evaluate a boolean expression.
 
recursive subroutine nts_parse_eval (parser)
 
recursive subroutine nts_get (parser, tok)
 
recursive subroutine nts_get_keyword (parser, tok)
 
recursive subroutine nts_peek (parser, tok)
 
recursive subroutine nts_unget (parser, tok)
 
logical recursive function nts_next_token (parser, kind, peek)
 
logical recursive function nts_next_keyword (parser, keyword_id)
 
recursive subroutine nts_expect (parser, kind, has_leading_space, message)
 
recursive subroutine nts_read_until_matched_token (parser, kind_open, kind_close, content)
 
subroutine nts_goto_right_brace (parser)
 Ignore any token until the next right brace if found.
 
subroutine nts_goto_right_parenthesis (parser)
 Ignore any token until the next right parenthesis if found.
 
subroutine nts_ignore_next_instruction (parser)
 Ignore any token until the next instruction is found.
 
logical function nts_on_exit_mode (depth)
 Return the exit mode state of the parser.
 
subroutine nts_parse_kill (parser)
 
subroutine nts_parse_function_definition (parser)
 
recursive subroutine nts_evaluate_function (parser, expr)
 
recursive subroutine nts_call_function (parser, block_parser)
 
logical recursive function nts_eval_function_block_reader (parser, tok, keyword_id)
 
recursive subroutine nts_parse_return (parser, return_tok)
 

Variables

procedure(parse_block_routine), pointer nts_parse_block => null()
 
integer nts_exit_depth = -1
 
logical nts_is_on_return_mode = .false.
 
logical nts_is_killed = .false.
 

Function/Subroutine Documentation

◆ nts_call_function()

recursive subroutine mod_nts_language::nts_call_function ( type(t_parser) parser,
procedure(block_function) block_parser )

◆ nts_eval_function_block_reader()

logical recursive function mod_nts_language::nts_eval_function_block_reader ( type(t_parser) parser,
type(t_token), intent(in) tok,
integer, intent(in) keyword_id )

◆ nts_evaluate_function()

recursive subroutine mod_nts_language::nts_evaluate_function ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expect()

recursive subroutine mod_nts_language::nts_expect ( type(t_parser) parser,
integer, intent(in) kind,
logical, intent(in), optional has_leading_space,
character(len=*), intent(in), optional message )

◆ nts_expression_read()

recursive subroutine mod_nts_language::nts_expression_read ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_additive()

recursive subroutine mod_nts_language::nts_expression_read_additive ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_comparison()

recursive subroutine mod_nts_language::nts_expression_read_comparison ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_const()

recursive subroutine mod_nts_language::nts_expression_read_const ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_multiplicative()

recursive subroutine mod_nts_language::nts_expression_read_multiplicative ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_or_and()

recursive subroutine mod_nts_language::nts_expression_read_or_and ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_power()

recursive subroutine mod_nts_language::nts_expression_read_power ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_ternary()

recursive subroutine mod_nts_language::nts_expression_read_ternary ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_expression_read_unary()

recursive subroutine mod_nts_language::nts_expression_read_unary ( type(t_parser) parser,
type(t_expression), pointer expr )

◆ nts_get()

recursive subroutine mod_nts_language::nts_get ( type(t_parser) parser,
type(t_token), intent(out) tok )

◆ nts_get_keyword()

recursive subroutine mod_nts_language::nts_get_keyword ( type(t_parser) parser,
type(t_token), intent(out) tok )

◆ nts_goto_right_brace()

subroutine mod_nts_language::nts_goto_right_brace ( type(t_parser) parser)

Ignore any token until the next right brace if found.

Parameters
[in,out]parserParser

◆ nts_goto_right_parenthesis()

subroutine mod_nts_language::nts_goto_right_parenthesis ( type(t_parser) parser)

Ignore any token until the next right parenthesis if found.

Parameters
[in,out]parserParser

◆ nts_ignore_next_instruction()

subroutine mod_nts_language::nts_ignore_next_instruction ( type(t_parser) parser)

Ignore any token until the next instruction is found.

An instruction ends at the next right brace if the next token is a left brace or at the next semicolon otherwise.

Parameters
[in,out]parserParser

◆ nts_next_keyword()

logical recursive function mod_nts_language::nts_next_keyword ( type(t_parser) parser,
integer, intent(in) keyword_id )

◆ nts_next_token()

logical recursive function mod_nts_language::nts_next_token ( type(t_parser) parser,
integer, intent(in) kind,
logical, intent(in), optional peek )

◆ nts_on_exit_mode()

logical function mod_nts_language::nts_on_exit_mode ( integer, intent(in) depth)

Return the exit mode state of the parser.

Return .true. if the parser is on exit mode for the given scope depth.

Parameters
[in]depthScope depth

◆ nts_parse_eval()

recursive subroutine mod_nts_language::nts_parse_eval ( type(t_parser) parser)

◆ nts_parse_function_definition()

subroutine mod_nts_language::nts_parse_function_definition ( type(t_parser) parser)

◆ nts_parse_kill()

subroutine mod_nts_language::nts_parse_kill ( type(t_parser) parser)

◆ nts_parse_return()

recursive subroutine mod_nts_language::nts_parse_return ( type(t_parser) parser,
type(t_token), intent(in) return_tok )

◆ nts_peek()

recursive subroutine mod_nts_language::nts_peek ( type(t_parser) parser,
type(t_token), intent(out) tok )

◆ nts_read_until_matched_token()

recursive subroutine mod_nts_language::nts_read_until_matched_token ( type(t_parser) parser,
integer, intent(in) kind_open,
integer, intent(in) kind_close,
character(len=:), allocatable content )

◆ nts_unget()

recursive subroutine mod_nts_language::nts_unget ( type(t_parser) parser,
type(t_token), intent(in) tok )

Variable Documentation

◆ nts_exit_depth

integer mod_nts_language::nts_exit_depth = -1

◆ nts_is_killed

logical mod_nts_language::nts_is_killed = .false.

◆ nts_is_on_return_mode

logical mod_nts_language::nts_is_on_return_mode = .false.

◆ nts_parse_block

procedure(parse_block_routine), pointer mod_nts_language::nts_parse_block => null()