GCC主要数据结构之c_parser

2024-02-17 14:18
文章标签 数据结构 主要 parser gcc

本文主要是介绍GCC主要数据结构之c_parser,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

/* The actual parser and external interface.  ??? Does this need to begarbage-collected?  */

static GTY (()) c_parser *the_parser;

 

/* A parser structure recording information about the state andcontext of parsing.  Includes lexer information with up to twotokens of look-ahead; more are not needed for C.  */ struct GTY(()) c_parser {/* The look-ahead tokens.  */c_token * GTY((skip)) tokens;/* Buffer for look-ahead tokens.  */c_token tokens_buf[4];/* How many look-ahead tokens are available (0 - 4, ormore if parsing from pre-lexed tokens).  */unsigned int tokens_avail;/* True if a syntax error is being recovered from; false otherwise.c_parser_error sets this flag.  It should clear this flag whenenough tokens have been consumed to recover from the error.  */BOOL_BITFIELD error : 1;/* True if we're processing a pragma, and shouldn't automaticallyconsume CPP_PRAGMA_EOL.  */BOOL_BITFIELD in_pragma : 1;/* True if we're parsing the outermost block of an if statement.  */BOOL_BITFIELD in_if_block : 1;/* True if we want to lex an untranslated string.  */BOOL_BITFIELD lex_untranslated_string : 1;

  /* Objective-C specific parser/lexer information.  */

  /* True if we are in a context where the Objective-C "PQ" keywordsare considered keywords.  */BOOL_BITFIELD objc_pq_context : 1;/* True if we are parsing a (potential) Objective-C foreachstatement.  This is set to true after we parsed 'for (' and whilewe wait for 'in' or ';' to decide if it's a standard C for loop or anObjective-C foreach loop.  */BOOL_BITFIELD objc_could_be_foreach_context : 1;/* The following flag is needed to contextualize Objective-C lexicalanalysis.  In some cases (e.g., 'int NSObject;'), it isundesirable to bind an identifier to an Objective-C class, evenif a class with that name exists.  */BOOL_BITFIELD objc_need_raw_identifier : 1;/* Nonzero if we're processing a __transaction statement.  The valueis 1 | TM_STMT_ATTR_*.  */unsigned int in_transaction : 4;/* True if we are in a context where the Objective-C "Property attribute"keywords are valid.  */BOOL_BITFIELD objc_property_attr_context : 1;

  /* Cilk Plus specific parser/lexer information.  */

  /* Buffer to hold all the tokens from parsing the vector attribute for theSIMD-enabled functions (formerly known as elemental functions).  */vec <c_token, va_gc> *cilk_simd_fn_tokens; };

 
 

这篇关于GCC主要数据结构之c_parser的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/718040

相关文章

便携式气象仪器的主要特点

TH-BQX9】便携式气象仪器,也称为便携式气象仪或便携式自动气象站,是一款高度集成、低功耗、可快速安装、便于野外监测使用的高精度自动气象观测设备。以下是关于便携式气象仪器的详细介绍:   主要特点   高精度与多功能:便携式气象仪器能够采集多种气象参数,包括但不限于风速、风向、温度、湿度、气压等,部分高级型号还能监测雨量和辐射等。数据采集与存储:配备微电脑气象数据采集仪,具有实时时钟、数据存

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

分布式系统的主要考虑

异构性:分布式系统由于基于不同的网路、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通讯协议来屏蔽异构系统之间的禅意。一般交由中间件来处理这些差异。缺乏全球时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。紧密的协调经常依赖于对程序动作发生时间的共识,但是,实际上网络上计算机同步时钟的准确性受到极大的限制,即没有一个正确时间的全局概念。这是通过网络发送消息作为唯一的通信方式

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

Python 内置的一些数据结构

文章目录 1. 列表 (List)2. 元组 (Tuple)3. 字典 (Dictionary)4. 集合 (Set)5. 字符串 (String) Python 提供了几种内置的数据结构来存储和操作数据,每种都有其独特的特点和用途。下面是一些常用的数据结构及其简要说明: 1. 列表 (List) 列表是一种可变的有序集合,可以存放任意类型的数据。列表中的元素可以通过索

浙大数据结构:04-树7 二叉搜索树的操作集

这道题答案都在PPT上,所以先学会再写的话并不难。 1、BinTree Insert( BinTree BST, ElementType X ) 递归实现,小就进左子树,大就进右子树。 为空就新建结点插入。 BinTree Insert( BinTree BST, ElementType X ){if(!BST){BST=(BinTree)malloc(sizeof(struct TNo