Herb C Reference
Loading...
Searching...
No Matches
analyze_conditional_elements.c File Reference
#include "include/analyze_conditional_elements.h"
#include "include/ast_nodes.h"
#include "include/element_source.h"
#include "include/errors.h"
#include "include/token_struct.h"
#include "include/util.h"
#include "include/util/hb_array.h"
#include "include/util/hb_buffer.h"
#include "include/util/hb_string.h"
#include "include/util/string.h"
#include "include/visitor.h"
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

Data Structures

struct  conditional_open_tag_T
 

Functions

static const char * extract_condition_from_erb_content (AST_NODE_T *erb_node, bool *is_if)
 
static bool is_simple_erb_conditional (AST_NODE_T *node)
 
static hb_array_T * get_erb_conditional_statements (AST_NODE_T *node)
 
static bool contains_single_open_tag (hb_array_T *statements, AST_HTML_OPEN_TAG_NODE_T **out_tag)
 
static bool contains_single_close_tag (hb_array_T *statements, AST_HTML_CLOSE_TAG_NODE_T **out_tag)
 
static size_t count_nodes_of_type (hb_array_T *array, ast_node_type_T type)
 
static bool conditions_are_equivalent (const char *a, const char *b)
 
static void rewrite_conditional_elements (hb_array_T *nodes, hb_array_T *document_errors)
 
static bool transform_conditional_elements_visitor (const AST_NODE_T *node, void *data)
 
static void transform_conditional_elements_in_array (hb_array_T *array, hb_array_T *document_errors)
 
void herb_transform_conditional_elements (AST_DOCUMENT_NODE_T *document)
 

Function Documentation

◆ extract_condition_from_erb_content()

static const char * extract_condition_from_erb_content ( AST_NODE_T erb_node,
bool *  is_if 
)
static

◆ is_simple_erb_conditional()

static bool is_simple_erb_conditional ( AST_NODE_T node)
static

◆ get_erb_conditional_statements()

static hb_array_T * get_erb_conditional_statements ( AST_NODE_T node)
static

◆ contains_single_open_tag()

static bool contains_single_open_tag ( hb_array_T *  statements,
AST_HTML_OPEN_TAG_NODE_T **  out_tag 
)
static

◆ contains_single_close_tag()

static bool contains_single_close_tag ( hb_array_T *  statements,
AST_HTML_CLOSE_TAG_NODE_T **  out_tag 
)
static

◆ count_nodes_of_type()

static size_t count_nodes_of_type ( hb_array_T *  array,
ast_node_type_T  type 
)
static

◆ conditions_are_equivalent()

static bool conditions_are_equivalent ( const char *  a,
const char *  b 
)
static

◆ rewrite_conditional_elements()

static void rewrite_conditional_elements ( hb_array_T *  nodes,
hb_array_T *  document_errors 
)
static

◆ transform_conditional_elements_visitor()

static bool transform_conditional_elements_visitor ( const AST_NODE_T node,
void *  data 
)
static

◆ transform_conditional_elements_in_array()

static void transform_conditional_elements_in_array ( hb_array_T *  array,
hb_array_T *  document_errors 
)
static

◆ herb_transform_conditional_elements()

void herb_transform_conditional_elements ( AST_DOCUMENT_NODE_T document)