GCC Middle and Back End API Reference
omp_addr_tokenizer::omp_addr_token Struct Reference

#include <omp-general.h>

Public Member Functions

 omp_addr_token (token_type, tree)
 
 omp_addr_token (access_method_kinds, tree)
 
 omp_addr_token (token_type, structure_base_kinds, tree)
 

Data Fields

enum token_type type
 
tree expr
 
union { 
 
   access_method_kinds   access_kind 
 
   structure_base_kinds   structure_base_kind 
 
u 
 

Detailed Description

The struct that forms a single token of an address expression as parsed by omp_parse_expr. These are typically held in a vec after parsing.

Constructor & Destructor Documentation

◆ omp_addr_token() [1/3]

omp_addr_tokenizer::omp_addr_token::omp_addr_token ( token_type t,
tree e )
We scan an expression by recursive descent, and build a vector of "omp_addr_token *" pointers representing a "parsed" version of the expression. The grammar we use is something like this: expr0:: expr [section-access] expr:: structured-expr access-method | array-base access-method structured-expr:: structure-base component-selector arbitrary-expr:: (anything else) structure-base:: DECL access-method | structured-expr access-method | arbitrary-expr access-method array-base:: DECL | arbitrary-expr access-method:: DIRECT | REF | POINTER | REF_TO_POINTER | POINTER_OFFSET | REF_TO_POINTER_OFFSET | INDEXED_ARRAY | INDEXED_REF_TO_ARRAY | index-expr index-expr:: INDEX_EXPR access-method component-selector:: component-selector COMPONENT_REF | component-selector ARRAY_REF | COMPONENT_REF This tokenized form is then used both in parsing, for OpenMP clause expansion (for C and C++) and in gimplify.cc for sibling-list handling (for C, C++ and Fortran).

References expr, and type.

◆ omp_addr_token() [2/3]

omp_addr_tokenizer::omp_addr_token::omp_addr_token ( access_method_kinds k,
tree e )

◆ omp_addr_token() [3/3]

omp_addr_tokenizer::omp_addr_token::omp_addr_token ( token_type t,
structure_base_kinds k,
tree e )

References expr, type, and u.

Field Documentation

◆ access_kind

access_method_kinds omp_addr_tokenizer::omp_addr_token::access_kind

◆ expr

tree omp_addr_tokenizer::omp_addr_token::expr

◆ structure_base_kind

structure_base_kinds omp_addr_tokenizer::omp_addr_token::structure_base_kind

◆ type

◆ [union]

union { ... } omp_addr_tokenizer::omp_addr_token::u

The documentation for this struct was generated from the following files: