⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c++.m4

📁 GNU的词法/语法分析器bison源码
💻 M4
字号:
m4_divert(-1)# C++ skeleton for Bison# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.# This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.# You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA# 02110-1301  USA## ---------------- #### Default values.  #### ---------------- ### Default parser class name.m4_define_default([b4_parser_class_name], [parser])m4_define_default([b4_location_type], [location])m4_define_default([b4_filename_type], [std::string])# b4_token_enums(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)# -----------------------------------------------------# Output the definition of the tokens (if there are) as enums.m4_define([b4_token_enums],[m4_if([$@], [[]], [],[/* Tokens.  */   enum yytokentype {m4_map_sep([     b4_token_enum], [,],           [$@])   };])])## ----------------- #### Semantic Values.  #### ----------------- ### b4_lhs_value([TYPE])# --------------------# Expansion of $<TYPE>$.m4_define([b4_lhs_value],[(yyval[]m4_ifval([$1], [.$1]))])# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])# --------------------------------------# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH# symbols on RHS.m4_define([b4_rhs_value],[(yysemantic_stack_@{m4_eval([$1 - $2])@}m4_ifval([$3], [.$3]))])# b4_lhs_location()# -----------------# Expansion of @$.m4_define([b4_lhs_location],[(yyloc)])# b4_rhs_location(RULE-LENGTH, NUM)# ---------------------------------# Expansion of @NUM, where the current rule has RULE-LENGTH symbols# on RHS.m4_define([b4_rhs_location],[(yylocation_stack_@{m4_eval([$1 - $2])@})])# b4_parse_param_decl# -------------------# Extra formal arguments of the constructor.# Change the parameter names from "foo" into "foo_yyarg", so that# there is no collision bw the user chosen attribute name, and the# argument name in the constructor.m4_define([b4_parse_param_decl],[m4_ifset([b4_parse_param],          [m4_map_sep([b4_parse_param_decl_1], [, ], [b4_parse_param])])])m4_define([b4_parse_param_decl_1],[$1_yyarg])# b4_parse_param_cons# -------------------# Extra initialisations of the constructor.m4_define([b4_parse_param_cons],          [m4_ifset([b4_parse_param],		    [,      b4_cc_constructor_calls(b4_parse_param)])])m4_define([b4_cc_constructor_calls],	  [m4_map_sep([b4_cc_constructor_call], [,      ], [$@])])m4_define([b4_cc_constructor_call],	  [$2 ($2_yyarg)])# b4_parse_param_vars# -------------------# Extra instance variables.m4_define([b4_parse_param_vars],          [m4_ifset([b4_parse_param],		    [    /* User arguments.  */b4_cc_var_decls(b4_parse_param)])])m4_define([b4_cc_var_decls],	  [m4_map_sep([b4_cc_var_decl], [], [$@])])m4_define([b4_cc_var_decl],	  [    $1;])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -