From 34257e0942c615f71181a1c2a66d2abf9085947f Mon Sep 17 00:00:00 2001 From: 15750821961 Date: Sat, 13 Nov 2021 22:14:05 +0800 Subject: [PATCH] change SysY to SysYF --- CMakeLists.txt | 14 +- SysYF_Student/SysYF_Task2/CMakeLists.txt | 4 +- .../SysYF_Task2/student_cpp/CMakeLists.txt | 6 +- include/ASTBuilder/SyntaxTree.h | 6 +- include/ASTPrinter/SyntaxTreePrinter.h | 6 +- include/ErrorReporter/ErrorReporter.h | 7 +- .../Grammar/{SysYDriver.h => SysYFDriver.h} | 24 +- .../{SysYFlexLexer.h => SysYFFlexLexer.h} | 18 +- .../Grammar/{SysYParser.h => SysYFParser.h} | 74 +-- .../SysYFBuilder.hpp} | 12 +- include/{SysYIR => SysYFIR}/BasicBlock.h | 6 +- include/{SysYIR => SysYFIR}/Constant.h | 6 +- include/{SysYIR => SysYFIR}/Function.h | 6 +- include/{SysYIR => SysYFIR}/GlobalVariable.h | 6 +- include/{SysYIR => SysYFIR}/IRBuilder.h | 6 +- include/{SysYIR => SysYFIR}/IRprinter.h | 0 include/{SysYIR => SysYFIR}/Instruction.h | 6 +- include/{SysYIR => SysYFIR}/Module.h | 6 +- include/{SysYIR => SysYFIR}/Type.h | 6 +- include/{SysYIR => SysYFIR}/User.h | 6 +- include/{SysYIR => SysYFIR}/Value.h | 6 +- src/ASTBuilder/SyntaxTree.cpp | 1 - src/ErrorReporter/ErrorReporter.cpp | 2 - src/Grammar/CMakeLists.txt | 6 +- .../{SysYDriver.cpp => SysYFDriver.cpp} | 20 +- .../{SysYParser.cpp => SysYFParser.cpp} | 470 +++++++++--------- .../{SysYScanner.cpp => SysYFScanner.cpp} | 122 ++--- src/SysYBuilder/CMakeLists.txt | 4 - src/SysYBuilder/SysYBuilder.cpp | 74 --- src/SysYFBuilder/CMakeLists.txt | 4 + src/SysYFBuilder/SysYFBuilder.cpp | 74 +++ src/{SysYIR => SysYFIR}/BasicBlock.cpp | 0 src/{SysYIR => SysYFIR}/CMakeLists.txt | 0 src/{SysYIR => SysYFIR}/Constant.cpp | 0 src/{SysYIR => SysYFIR}/Function.cpp | 0 src/{SysYIR => SysYFIR}/GlobalVariable.cpp | 0 src/{SysYIR => SysYFIR}/IRprinter.cpp | 0 src/{SysYIR => SysYFIR}/Instruction.cpp | 0 src/{SysYIR => SysYFIR}/Module.cpp | 0 src/{SysYIR => SysYFIR}/Type.cpp | 0 src/{SysYIR => SysYFIR}/User.cpp | 0 src/{SysYIR => SysYFIR}/Value.cpp | 0 src/main.cpp | 8 +- 43 files changed, 506 insertions(+), 510 deletions(-) rename include/Grammar/{SysYDriver.h => SysYFDriver.h} (69%) rename include/Grammar/{SysYFlexLexer.h => SysYFFlexLexer.h} (66%) rename include/Grammar/{SysYParser.h => SysYFParser.h} (98%) rename include/{SysYBuilder/SysYBuilder.hpp => SysYFBuilder/SysYFBuilder.hpp} (96%) rename include/{SysYIR => SysYFIR}/BasicBlock.h (96%) rename include/{SysYIR => SysYFIR}/Constant.h (95%) rename include/{SysYIR => SysYFIR}/Function.h (97%) rename include/{SysYIR => SysYFIR}/GlobalVariable.h (83%) rename include/{SysYIR => SysYFIR}/IRBuilder.h (98%) rename include/{SysYIR => SysYFIR}/IRprinter.h (100%) rename include/{SysYIR => SysYFIR}/Instruction.h (99%) rename include/{SysYIR => SysYFIR}/Module.h (96%) rename include/{SysYIR => SysYFIR}/Type.h (98%) rename include/{SysYIR => SysYFIR}/User.h (90%) rename include/{SysYIR => SysYFIR}/Value.h (93%) rename src/Grammar/{SysYDriver.cpp => SysYFDriver.cpp} (65%) rename src/Grammar/{SysYParser.cpp => SysYFParser.cpp} (93%) rename src/Grammar/{SysYScanner.cpp => SysYFScanner.cpp} (97%) delete mode 100644 src/SysYBuilder/CMakeLists.txt delete mode 100644 src/SysYBuilder/SysYBuilder.cpp create mode 100644 src/SysYFBuilder/CMakeLists.txt create mode 100644 src/SysYFBuilder/SysYFBuilder.cpp rename src/{SysYIR => SysYFIR}/BasicBlock.cpp (100%) rename src/{SysYIR => SysYFIR}/CMakeLists.txt (100%) rename src/{SysYIR => SysYFIR}/Constant.cpp (100%) rename src/{SysYIR => SysYFIR}/Function.cpp (100%) rename src/{SysYIR => SysYFIR}/GlobalVariable.cpp (100%) rename src/{SysYIR => SysYFIR}/IRprinter.cpp (100%) rename src/{SysYIR => SysYFIR}/Instruction.cpp (100%) rename src/{SysYIR => SysYFIR}/Module.cpp (100%) rename src/{SysYIR => SysYFIR}/Type.cpp (100%) rename src/{SysYIR => SysYFIR}/User.cpp (100%) rename src/{SysYIR => SysYFIR}/Value.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77045b1..9605c78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,24 +14,24 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ASTBuilder) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ASTPrinter) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ErrorReporter) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/Grammar) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/SysYIR) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/SysYBuilder) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/SysYFIR) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/SysYFBuilder) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/ASTBuilder) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/ASTPrinter) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/ErrorReporter) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/Grammar) -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/SysYIR) -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/SysYBuilder) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/SysYFIR) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/SysYFBuilder) add_executable( - SysYCompiler + SysYFCompiler ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp ) target_link_libraries( - SysYCompiler - SysYBuilder + SysYFCompiler + SysYFBuilder IRLib Driver ASTPrinter diff --git a/SysYF_Student/SysYF_Task2/CMakeLists.txt b/SysYF_Student/SysYF_Task2/CMakeLists.txt index aa543fb..dd44d77 100644 --- a/SysYF_Student/SysYF_Task2/CMakeLists.txt +++ b/SysYF_Student/SysYF_Task2/CMakeLists.txt @@ -10,8 +10,8 @@ set(SYSYF_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) # include generated files in project environment -include_directories(${SYSYF_SOURCE_DIR}include/SysYIR) -add_subdirectory(${SYSYF_SOURCE_DIR}src/SysYIR src/SysYIR) +include_directories(${SYSYF_SOURCE_DIR}include/SysYFIR) +add_subdirectory(${SYSYF_SOURCE_DIR}src/SysYFIR src/SysYFIR) add_subdirectory(ta_demo) add_subdirectory(student_cpp) diff --git a/SysYF_Student/SysYF_Task2/student_cpp/CMakeLists.txt b/SysYF_Student/SysYF_Task2/student_cpp/CMakeLists.txt index e201403..58796f3 100644 --- a/SysYF_Student/SysYF_Task2/student_cpp/CMakeLists.txt +++ b/SysYF_Student/SysYF_Task2/student_cpp/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable( - assign_generator - assign_gen.cpp + assign_generator + assign_gen.cpp ) target_link_libraries( assign_generator @@ -30,7 +30,7 @@ add_executable( while_gen.cpp ) target_link_libraries( - while_generator + while_generator IRLib ) \ No newline at end of file diff --git a/include/ASTBuilder/SyntaxTree.h b/include/ASTBuilder/SyntaxTree.h index 57eb0f4..2ccf806 100644 --- a/include/ASTBuilder/SyntaxTree.h +++ b/include/ASTBuilder/SyntaxTree.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_SYNTAX_TREE_H_ -#define _SYSY_SYNTAX_TREE_H_ +#ifndef _SYSYF_SYNTAX_TREE_H_ +#define _SYSYF_SYNTAX_TREE_H_ #include #include @@ -330,4 +330,4 @@ public: } // end namespace SyntaxTree -#endif // _SYSY_SYNTAX_TREE_H_ +#endif // _SYSYF_SYNTAX_TREE_H_ diff --git a/include/ASTPrinter/SyntaxTreePrinter.h b/include/ASTPrinter/SyntaxTreePrinter.h index c2f008e..fc8bcfd 100644 --- a/include/ASTPrinter/SyntaxTreePrinter.h +++ b/include/ASTPrinter/SyntaxTreePrinter.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_SYNTAX_TREE_PRINTER_H_ -#define _SYSY_SYNTAX_TREE_PRINTER_H_ +#ifndef _SYSYF_SYNTAX_TREE_PRINTER_H_ +#define _SYSYF_SYNTAX_TREE_PRINTER_H_ #include "SyntaxTree.h" @@ -33,4 +33,4 @@ private: int indent = 0; }; -#endif // _SYSY_SYNTAX_TREE_PRINTER_H_ +#endif // _SYSYF_SYNTAX_TREE_PRINTER_H_ diff --git a/include/ErrorReporter/ErrorReporter.h b/include/ErrorReporter/ErrorReporter.h index 99a2795..b642548 100644 --- a/include/ErrorReporter/ErrorReporter.h +++ b/include/ErrorReporter/ErrorReporter.h @@ -1,6 +1,5 @@ - -#ifndef _SYSY_ERROR_REPORTER_H_ -#define _SYSY_ERROR_REPORTER_H_ +#ifndef _SYSYF_ERROR_REPORTER_H_ +#define _SYSYF_ERROR_REPORTER_H_ #include #include @@ -24,4 +23,4 @@ private: std::ostream &err; }; -#endif // _SYSY_ERROR_REPORTER_H_ +#endif // _SYSYF_ERROR_REPORTER_H_ diff --git a/include/Grammar/SysYDriver.h b/include/Grammar/SysYFDriver.h similarity index 69% rename from include/Grammar/SysYDriver.h rename to include/Grammar/SysYFDriver.h index f7f00c5..168637d 100644 --- a/include/Grammar/SysYDriver.h +++ b/include/Grammar/SysYFDriver.h @@ -1,32 +1,32 @@ -#ifndef _SYSY_DRIVER_H_ -#define _SYSY_DRIVER_H_ +#ifndef _SYSYF_DRIVER_H_ +#define _SYSYF_DRIVER_H_ #include #include #include // Generated by bison: -#include "SysYParser.h" +#include "SysYFParser.h" -#include "SysYFlexLexer.h" +#include "SysYFFlexLexer.h" -// Conducting the whole scanning and parsing of SysY. -class SysYDriver +// Conducting the whole scanning and parsing of SysYF. +class SysYFDriver { public: - SysYDriver(); - virtual ~SysYDriver(); + SysYFDriver(); + virtual ~SysYFDriver(); std::map variables; int result; - // SysY lexer - SysYFlexLexer lexer; + // SysYF lexer + SysYFFlexLexer lexer; std::ifstream instream; - // Handling the SysY scanner. + // Handling the SysYF scanner. void scan_begin(); void scan_end(); bool trace_scanning; @@ -47,4 +47,4 @@ public: SyntaxTree::Node* root = nullptr; }; -#endif // _SYSY_DRIVER_H_ +#endif // _SYSYF_DRIVER_H_ diff --git a/include/Grammar/SysYFlexLexer.h b/include/Grammar/SysYFFlexLexer.h similarity index 66% rename from include/Grammar/SysYFlexLexer.h rename to include/Grammar/SysYFFlexLexer.h index 502c69d..f567ebe 100644 --- a/include/Grammar/SysYFlexLexer.h +++ b/include/Grammar/SysYFFlexLexer.h @@ -1,9 +1,9 @@ -#ifndef _SYSY_FLEX_LEXER_H_ -#define _SYSY_FLEX_LEXER_H_ +#ifndef _SYSYF_FLEX_LEXER_H_ +#define _SYSYF_FLEX_LEXER_H_ #ifndef YY_DECL #define YY_DECL \ - yy::SysYParser::symbol_type SysYFlexLexer::yylex(SysYDriver& driver) + yy::SysYFParser::symbol_type SysYFFlexLexer::yylex(SysYFDriver& driver) #endif // We need this for yyFlexLexer. If we don't #undef yyFlexLexer, the @@ -12,20 +12,20 @@ #undef yyFlexLexer #include -// We need this for the yy::SysYParser::symbol_type: -#include "SysYParser.h" +// We need this for the yy::SysYFParser::symbol_type: +#include "SysYFParser.h" // We need this for the yy::location type: #include "location.hh" -class SysYFlexLexer : public yyFlexLexer { +class SysYFFlexLexer : public yyFlexLexer { public: // Use the superclass's constructor: using yyFlexLexer::yyFlexLexer; // Provide the interface to `yylex`; `flex` will emit the - // definition into `SysYScanner.cpp`: - yy::SysYParser::symbol_type yylex(SysYDriver& driver); + // definition into `SysYFScanner.cpp`: + yy::SysYFParser::symbol_type yylex(SysYFDriver& driver); // This seems like a reasonable place to put the location object // rather than it being static (in the sense of having internal @@ -34,4 +34,4 @@ public: yy::location loc; }; -#endif // _SYSY_FLEX_LEXER_H_ +#endif // _SYSYF_FLEX_LEXER_H_ diff --git a/include/Grammar/SysYParser.h b/include/Grammar/SysYFParser.h similarity index 98% rename from include/Grammar/SysYParser.h rename to include/Grammar/SysYFParser.h index 09c6e86..8d868ea 100644 --- a/include/Grammar/SysYParser.h +++ b/include/Grammar/SysYFParser.h @@ -32,7 +32,7 @@ /** - ** \file /home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.h + ** \file /home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.h ** Define the yy::parser class. */ @@ -42,16 +42,16 @@ // especially those whose name start with YY_ or yy_. They are // private implementation details that can be changed or removed. -#ifndef YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYPARSER_H_INCLUDED -# define YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYPARSER_H_INCLUDED +#ifndef YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYFPARSER_H_INCLUDED +# define YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYFPARSER_H_INCLUDED // "%code requires" blocks. -#line 12 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 12 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" #include #include "SyntaxTree.h" -class SysYDriver; +class SysYFDriver; -#line 55 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.h" +#line 55 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.h" # include # include // std::abort @@ -185,13 +185,13 @@ class SysYDriver; #endif namespace yy { -#line 189 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.h" +#line 189 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.h" /// A Bison parser. - class SysYParser + class SysYFParser { public: #ifndef YYSTYPE @@ -1225,7 +1225,7 @@ switch (yykind) /// The user-facing name of this symbol. std::string name () const YY_NOEXCEPT { - return SysYParser::symbol_name (this->kind ()); + return SysYFParser::symbol_name (this->kind ()); } /// Backward compatibility (Bison 3.6). @@ -1351,14 +1351,14 @@ switch (yykind) }; /// Build a parser object. - SysYParser (SysYDriver& driver_yyarg); - virtual ~SysYParser (); + SysYFParser (SysYFDriver& driver_yyarg); + virtual ~SysYFParser (); #if 201103L <= YY_CPLUSPLUS /// Non copyable. - SysYParser (const SysYParser&) = delete; + SysYFParser (const SysYFParser&) = delete; /// Non copyable. - SysYParser& operator= (const SysYParser&) = delete; + SysYFParser& operator= (const SysYFParser&) = delete; #endif /// Parse. An alias for parse (). @@ -2196,7 +2196,7 @@ switch (yykind) class context { public: - context (const SysYParser& yyparser, const symbol_type& yyla); + context (const SysYFParser& yyparser, const symbol_type& yyla); const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } const location_type& location () const YY_NOEXCEPT { return yyla_.location; } @@ -2207,16 +2207,16 @@ switch (yykind) int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; private: - const SysYParser& yyparser_; + const SysYFParser& yyparser_; const symbol_type& yyla_; }; private: #if YY_CPLUSPLUS < 201103L /// Non copyable. - SysYParser (const SysYParser&); + SysYFParser (const SysYFParser&); /// Non copyable. - SysYParser& operator= (const SysYParser&); + SysYFParser& operator= (const SysYFParser&); #endif @@ -2528,13 +2528,13 @@ switch (yykind) // User arguments. - SysYDriver& driver; + SysYFDriver& driver; }; inline - SysYParser::symbol_kind_type - SysYParser::yytranslate_ (int t) + SysYFParser::symbol_kind_type + SysYFParser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. @@ -2587,7 +2587,7 @@ switch (yykind) // basic_symbol. template - SysYParser::basic_symbol::basic_symbol (const basic_symbol& that) + SysYFParser::basic_symbol::basic_symbol (const basic_symbol& that) : Base (that) , value () , location (that.location) @@ -2697,22 +2697,22 @@ switch (yykind) template - SysYParser::symbol_kind_type - SysYParser::basic_symbol::type_get () const YY_NOEXCEPT + SysYFParser::symbol_kind_type + SysYFParser::basic_symbol::type_get () const YY_NOEXCEPT { return this->kind (); } template bool - SysYParser::basic_symbol::empty () const YY_NOEXCEPT + SysYFParser::basic_symbol::empty () const YY_NOEXCEPT { return this->kind () == symbol_kind::S_YYEMPTY; } template void - SysYParser::basic_symbol::move (basic_symbol& s) + SysYFParser::basic_symbol::move (basic_symbol& s) { super_type::move (s); switch (this->kind ()) @@ -2820,13 +2820,13 @@ switch (yykind) // by_kind. inline - SysYParser::by_kind::by_kind () + SysYFParser::by_kind::by_kind () : kind_ (symbol_kind::S_YYEMPTY) {} #if 201103L <= YY_CPLUSPLUS inline - SysYParser::by_kind::by_kind (by_kind&& that) + SysYFParser::by_kind::by_kind (by_kind&& that) : kind_ (that.kind_) { that.clear (); @@ -2834,48 +2834,48 @@ switch (yykind) #endif inline - SysYParser::by_kind::by_kind (const by_kind& that) + SysYFParser::by_kind::by_kind (const by_kind& that) : kind_ (that.kind_) {} inline - SysYParser::by_kind::by_kind (token_kind_type t) + SysYFParser::by_kind::by_kind (token_kind_type t) : kind_ (yytranslate_ (t)) {} inline void - SysYParser::by_kind::clear () YY_NOEXCEPT + SysYFParser::by_kind::clear () YY_NOEXCEPT { kind_ = symbol_kind::S_YYEMPTY; } inline void - SysYParser::by_kind::move (by_kind& that) + SysYFParser::by_kind::move (by_kind& that) { kind_ = that.kind_; that.clear (); } inline - SysYParser::symbol_kind_type - SysYParser::by_kind::kind () const YY_NOEXCEPT + SysYFParser::symbol_kind_type + SysYFParser::by_kind::kind () const YY_NOEXCEPT { return kind_; } inline - SysYParser::symbol_kind_type - SysYParser::by_kind::type_get () const YY_NOEXCEPT + SysYFParser::symbol_kind_type + SysYFParser::by_kind::type_get () const YY_NOEXCEPT { return this->kind (); } } // yy -#line 2877 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.h" +#line 2877 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.h" -#endif // !YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYPARSER_H_INCLUDED +#endif // !YY_YY_HOME_HZQ_SYSYF_IR_LAB_2021_SYSYCOMPILER_IR_LAB_BUILD_SYSYFPARSER_H_INCLUDED diff --git a/include/SysYBuilder/SysYBuilder.hpp b/include/SysYFBuilder/SysYFBuilder.hpp similarity index 96% rename from include/SysYBuilder/SysYBuilder.hpp rename to include/SysYFBuilder/SysYFBuilder.hpp index 8848367..9d592c6 100644 --- a/include/SysYBuilder/SysYBuilder.hpp +++ b/include/SysYFBuilder/SysYFBuilder.hpp @@ -1,5 +1,5 @@ -#ifndef _SYSY_IR_BUILDER_HPP_ -#define _SYSY_IR_BUILDER_HPP_ +#ifndef _SYSYF_IR_BUILDER_HPP_ +#define _SYSYF_IR_BUILDER_HPP_ #include "BasicBlock.h" #include "Constant.h" #include "Function.h" @@ -69,7 +69,7 @@ private: std::vector> name2func; }; -class SysYBuilder: public SyntaxTree::Visitor +class SysYFBuilder: public SyntaxTree::Visitor { private: virtual void visit(SyntaxTree::InitVal &) override final; @@ -99,8 +99,8 @@ private: Scope scope; std::unique_ptr module; public: - SysYBuilder(){ - module = std::unique_ptr(new Module("SysY code")); + SysYFBuilder(){ + module = std::unique_ptr(new Module("SysYF code")); builder = new IRBuilder(nullptr, module.get()); auto TyVoid = Type::get_void_type(module.get()); auto TyInt32 = Type::get_int32_type(module.get()); @@ -214,4 +214,4 @@ public: }; -#endif // _SYSY_IR_BUILDER_HPP_ +#endif // _SYSYF_IR_BUILDER_HPP_ diff --git a/include/SysYIR/BasicBlock.h b/include/SysYFIR/BasicBlock.h similarity index 96% rename from include/SysYIR/BasicBlock.h rename to include/SysYFIR/BasicBlock.h index aa1fe26..66c5fe4 100644 --- a/include/SysYIR/BasicBlock.h +++ b/include/SysYFIR/BasicBlock.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_BASICBLOCK_H_ -#define _SYSY_BASICBLOCK_H_ +#ifndef _SYSYF_BASICBLOCK_H_ +#define _SYSYF_BASICBLOCK_H_ #include "Value.h" #include "Instruction.h" @@ -74,4 +74,4 @@ private: Function *parent_; }; -#endif // _SYSY_BASICBLOCK_H_ \ No newline at end of file +#endif // _SYSYF_BASICBLOCK_H_ \ No newline at end of file diff --git a/include/SysYIR/Constant.h b/include/SysYFIR/Constant.h similarity index 95% rename from include/SysYIR/Constant.h rename to include/SysYFIR/Constant.h index 41b3e52..e18bfa1 100644 --- a/include/SysYIR/Constant.h +++ b/include/SysYFIR/Constant.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_CONSTANT_H_ -#define _SYSY_CONSTANT_H_ +#ifndef _SYSYF_CONSTANT_H_ +#define _SYSYF_CONSTANT_H_ #include "User.h" #include "Value.h" #include "Type.h" @@ -72,4 +72,4 @@ public: virtual std::string print() override; }; -#endif //_SYSY_CONSTANT_H_ +#endif //_SYSYF_CONSTANT_H_ diff --git a/include/SysYIR/Function.h b/include/SysYFIR/Function.h similarity index 97% rename from include/SysYIR/Function.h rename to include/SysYFIR/Function.h index 106b5a8..fb756bd 100644 --- a/include/SysYIR/Function.h +++ b/include/SysYFIR/Function.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_FUNCTION_H_ -#define _SYSY_FUNCTION_H_ +#ifndef _SYSYF_FUNCTION_H_ +#define _SYSYF_FUNCTION_H_ #include #include @@ -98,4 +98,4 @@ private: unsigned arg_no_; // argument No. }; -#endif // _SYSY_FUNCTION_H_ +#endif // _SYSYF_FUNCTION_H_ diff --git a/include/SysYIR/GlobalVariable.h b/include/SysYFIR/GlobalVariable.h similarity index 83% rename from include/SysYIR/GlobalVariable.h rename to include/SysYFIR/GlobalVariable.h index 6c7e578..f08df3b 100644 --- a/include/SysYIR/GlobalVariable.h +++ b/include/SysYFIR/GlobalVariable.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_GLOBALVARIABLE_H_ -#define _SYSY_GLOBALVARIABLE_H_ +#ifndef _SYSYF_GLOBALVARIABLE_H_ +#define _SYSYF_GLOBALVARIABLE_H_ #include "Module.h" #include "User.h" @@ -19,4 +19,4 @@ public: bool is_const() { return is_const_; } std::string print(); }; -#endif //_SYSY_GLOBALVARIABLE_H_ +#endif //_SYSYF_GLOBALVARIABLE_H_ diff --git a/include/SysYIR/IRBuilder.h b/include/SysYFIR/IRBuilder.h similarity index 98% rename from include/SysYIR/IRBuilder.h rename to include/SysYFIR/IRBuilder.h index 45764e6..321387e 100644 --- a/include/SysYIR/IRBuilder.h +++ b/include/SysYFIR/IRBuilder.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_IRBUILDER_H_ -#define _SYSY_IRBUILDER_H_ +#ifndef _SYSYF_IRBUILDER_H_ +#define _SYSYF_IRBUILDER_H_ #include "BasicBlock.h" #include "Instruction.h" @@ -72,4 +72,4 @@ public: SiToFpInst *create_sitofp(Value *val, Type *ty) { return SiToFpInst::create_sitofp(val, ty, this->BB_); } }; -#endif // _SYSY_IRBUILDER_H_ +#endif // _SYSYF_IRBUILDER_H_ diff --git a/include/SysYIR/IRprinter.h b/include/SysYFIR/IRprinter.h similarity index 100% rename from include/SysYIR/IRprinter.h rename to include/SysYFIR/IRprinter.h diff --git a/include/SysYIR/Instruction.h b/include/SysYFIR/Instruction.h similarity index 99% rename from include/SysYIR/Instruction.h rename to include/SysYFIR/Instruction.h index b93dcf0..8acceae 100644 --- a/include/SysYIR/Instruction.h +++ b/include/SysYFIR/Instruction.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_INSTRUCTION_H_ -#define _SYSY_INSTRUCTION_H_ +#ifndef _SYSYF_INSTRUCTION_H_ +#define _SYSYF_INSTRUCTION_H_ #include "User.h" #include "Type.h" @@ -402,4 +402,4 @@ private: }; -#endif // _SYSY_INSTRUCTION_H_ +#endif // _SYSYF_INSTRUCTION_H_ diff --git a/include/SysYIR/Module.h b/include/SysYFIR/Module.h similarity index 96% rename from include/SysYIR/Module.h rename to include/SysYFIR/Module.h index f9e2f67..d5f7f18 100644 --- a/include/SysYIR/Module.h +++ b/include/SysYFIR/Module.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_MODULE_H_ -#define _SYSY_MODULE_H_ +#ifndef _SYSYF_MODULE_H_ +#define _SYSYF_MODULE_H_ #include #include @@ -58,4 +58,4 @@ private: std::map, ArrayType *> array_map_; }; -#endif // _SYSY_MODULE_H_ \ No newline at end of file +#endif // _SYSYF_MODULE_H_ \ No newline at end of file diff --git a/include/SysYIR/Type.h b/include/SysYFIR/Type.h similarity index 98% rename from include/SysYIR/Type.h rename to include/SysYFIR/Type.h index ecc067b..f8554f5 100644 --- a/include/SysYIR/Type.h +++ b/include/SysYFIR/Type.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_TYPE_H_ -#define _SYSY_TYPE_H_ +#ifndef _SYSYF_TYPE_H_ +#define _SYSYF_TYPE_H_ #include #include @@ -143,4 +143,4 @@ private: Type *contained_; // The element type of the ptr. }; -#endif // _SYSY_TYPE_H_ \ No newline at end of file +#endif // _SYSYF_TYPE_H_ \ No newline at end of file diff --git a/include/SysYIR/User.h b/include/SysYFIR/User.h similarity index 90% rename from include/SysYIR/User.h rename to include/SysYFIR/User.h index b4e0167..6a997ef 100644 --- a/include/SysYIR/User.h +++ b/include/SysYFIR/User.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_USER_H_ -#define _SYSY_USER_H_ +#ifndef _SYSYF_USER_H_ +#define _SYSYF_USER_H_ #include "Value.h" #include @@ -31,4 +31,4 @@ private: unsigned num_ops_; }; -#endif // _SYSY_USER_H_ +#endif // _SYSYF_USER_H_ diff --git a/include/SysYIR/Value.h b/include/SysYFIR/Value.h similarity index 93% rename from include/SysYIR/Value.h rename to include/SysYFIR/Value.h index 752b8e6..79e34a3 100644 --- a/include/SysYIR/Value.h +++ b/include/SysYFIR/Value.h @@ -1,5 +1,5 @@ -#ifndef _SYSY_VALUE_H_ -#define _SYSY_VALUE_H_ +#ifndef _SYSYF_VALUE_H_ +#define _SYSYF_VALUE_H_ #include #include @@ -47,4 +47,4 @@ private: std::string name_; // should we put name field here ? }; -#endif // _SYSY_VALUE_H_ +#endif // _SYSYF_VALUE_H_ diff --git a/src/ASTBuilder/SyntaxTree.cpp b/src/ASTBuilder/SyntaxTree.cpp index 613eb90..a9256dc 100644 --- a/src/ASTBuilder/SyntaxTree.cpp +++ b/src/ASTBuilder/SyntaxTree.cpp @@ -1,4 +1,3 @@ - #include "SyntaxTree.h" using namespace SyntaxTree; diff --git a/src/ErrorReporter/ErrorReporter.cpp b/src/ErrorReporter/ErrorReporter.cpp index c900727..82f6428 100644 --- a/src/ErrorReporter/ErrorReporter.cpp +++ b/src/ErrorReporter/ErrorReporter.cpp @@ -1,7 +1,5 @@ - #include "ErrorReporter.h" - ErrorReporter::ErrorReporter(std::ostream &error_stream) : err(error_stream) {} void ErrorReporter::error(Position pos, const std::string &msg) diff --git a/src/Grammar/CMakeLists.txt b/src/Grammar/CMakeLists.txt index de770c1..9dbaf76 100644 --- a/src/Grammar/CMakeLists.txt +++ b/src/Grammar/CMakeLists.txt @@ -1,16 +1,16 @@ add_library( Driver STATIC - SysYDriver.cpp + SysYFDriver.cpp ) add_library( Scanner STATIC - SysYScanner.cpp + SysYFScanner.cpp ) add_library( Parser STATIC - SysYParser.cpp + SysYFParser.cpp ) target_link_libraries( diff --git a/src/Grammar/SysYDriver.cpp b/src/Grammar/SysYFDriver.cpp similarity index 65% rename from src/Grammar/SysYDriver.cpp rename to src/Grammar/SysYFDriver.cpp index e9c6ce0..ce21327 100644 --- a/src/Grammar/SysYDriver.cpp +++ b/src/Grammar/SysYFDriver.cpp @@ -1,22 +1,22 @@ -#include "SysYDriver.h" -// #include "SysYParser.h" +#include "SysYFDriver.h" +// #include "SysYFParser.h" -SysYDriver::SysYDriver() +SysYFDriver::SysYFDriver() : trace_scanning(false), trace_parsing(false) { } -SysYDriver::~SysYDriver() +SysYFDriver::~SysYFDriver() { } -SyntaxTree::Node* SysYDriver::parse(const std::string &f) +SyntaxTree::Node* SysYFDriver::parse(const std::string &f) { file = f; // lexer begin scan_begin(); - yy::SysYParser parser(*this); + yy::SysYFParser parser(*this); parser.set_debug_level(trace_parsing); // parser begin parser.parse(); @@ -26,18 +26,18 @@ SyntaxTree::Node* SysYDriver::parse(const std::string &f) return this->root; } -void SysYDriver::error(const yy::location& l, const std::string& m) +void SysYFDriver::error(const yy::location& l, const std::string& m) { std::cerr << l << ": " << m << std::endl; } -void SysYDriver::error(const std::string& m) +void SysYFDriver::error(const std::string& m) { std::cerr << m << std::endl; } -void SysYDriver::scan_begin() +void SysYFDriver::scan_begin() { lexer.set_debug(trace_scanning); @@ -56,7 +56,7 @@ void SysYDriver::scan_begin() } } -void SysYDriver::scan_end() +void SysYFDriver::scan_end() { instream.close(); } diff --git a/src/Grammar/SysYParser.cpp b/src/Grammar/SysYFParser.cpp similarity index 93% rename from src/Grammar/SysYParser.cpp rename to src/Grammar/SysYFParser.cpp index c1450e8..23cbaee 100644 --- a/src/Grammar/SysYParser.cpp +++ b/src/Grammar/SysYFParser.cpp @@ -38,16 +38,16 @@ -#include "SysYParser.h" +#include "SysYFParser.h" // Unqualified %code blocks. -#line 35 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 35 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" -#include "SysYDriver.h" +#include "SysYFDriver.h" #define yylex driver.lexer.yylex -#line 51 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 51 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" #ifndef YY_ @@ -139,10 +139,10 @@ #define YYRECOVERING() (!!yyerrstatus_) namespace yy { -#line 143 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 143 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" /// Build a parser object. - SysYParser::SysYParser (SysYDriver& driver_yyarg) + SysYFParser::SysYFParser (SysYFDriver& driver_yyarg) #if YYDEBUG : yydebug_ (false), yycdebug_ (&std::cerr), @@ -152,10 +152,10 @@ namespace yy { driver (driver_yyarg) {} - SysYParser::~SysYParser () + SysYFParser::~SysYFParser () {} - SysYParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW + SysYFParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW {} /*---------------. @@ -165,33 +165,33 @@ namespace yy { // by_state. - SysYParser::by_state::by_state () YY_NOEXCEPT + SysYFParser::by_state::by_state () YY_NOEXCEPT : state (empty_state) {} - SysYParser::by_state::by_state (const by_state& that) YY_NOEXCEPT + SysYFParser::by_state::by_state (const by_state& that) YY_NOEXCEPT : state (that.state) {} void - SysYParser::by_state::clear () YY_NOEXCEPT + SysYFParser::by_state::clear () YY_NOEXCEPT { state = empty_state; } void - SysYParser::by_state::move (by_state& that) + SysYFParser::by_state::move (by_state& that) { state = that.state; that.clear (); } - SysYParser::by_state::by_state (state_type s) YY_NOEXCEPT + SysYFParser::by_state::by_state (state_type s) YY_NOEXCEPT : state (s) {} - SysYParser::symbol_kind_type - SysYParser::by_state::kind () const YY_NOEXCEPT + SysYFParser::symbol_kind_type + SysYFParser::by_state::kind () const YY_NOEXCEPT { if (state == empty_state) return symbol_kind::S_YYEMPTY; @@ -199,10 +199,10 @@ namespace yy { return YY_CAST (symbol_kind_type, yystos_[+state]); } - SysYParser::stack_symbol_type::stack_symbol_type () + SysYFParser::stack_symbol_type::stack_symbol_type () {} - SysYParser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) + SysYFParser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) { switch (that.kind ()) @@ -311,7 +311,7 @@ namespace yy { #endif } - SysYParser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) + SysYFParser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) : super_type (s, YY_MOVE (that.location)) { switch (that.kind ()) @@ -419,8 +419,8 @@ namespace yy { } #if YY_CPLUSPLUS < 201103L - SysYParser::stack_symbol_type& - SysYParser::stack_symbol_type::operator= (const stack_symbol_type& that) + SysYFParser::stack_symbol_type& + SysYFParser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; switch (that.kind ()) @@ -527,8 +527,8 @@ namespace yy { return *this; } - SysYParser::stack_symbol_type& - SysYParser::stack_symbol_type::operator= (stack_symbol_type& that) + SysYFParser::stack_symbol_type& + SysYFParser::stack_symbol_type::operator= (stack_symbol_type& that) { state = that.state; switch (that.kind ()) @@ -640,7 +640,7 @@ namespace yy { template void - SysYParser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const + SysYFParser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const { if (yymsg) YY_SYMBOL_PRINT (yymsg, yysym); @@ -649,7 +649,7 @@ namespace yy { #if YYDEBUG template void - SysYParser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const + SysYFParser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const { std::ostream& yyoutput = yyo; YY_USE (yyoutput); @@ -668,7 +668,7 @@ namespace yy { #endif void - SysYParser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + SysYFParser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) { if (m) YY_SYMBOL_PRINT (m, sym); @@ -676,7 +676,7 @@ namespace yy { } void - SysYParser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + SysYFParser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) { #if 201103L <= YY_CPLUSPLUS yypush_ (m, stack_symbol_type (s, std::move (sym))); @@ -687,40 +687,40 @@ namespace yy { } void - SysYParser::yypop_ (int n) + SysYFParser::yypop_ (int n) { yystack_.pop (n); } #if YYDEBUG std::ostream& - SysYParser::debug_stream () const + SysYFParser::debug_stream () const { return *yycdebug_; } void - SysYParser::set_debug_stream (std::ostream& o) + SysYFParser::set_debug_stream (std::ostream& o) { yycdebug_ = &o; } - SysYParser::debug_level_type - SysYParser::debug_level () const + SysYFParser::debug_level_type + SysYFParser::debug_level () const { return yydebug_; } void - SysYParser::set_debug_level (debug_level_type l) + SysYFParser::set_debug_level (debug_level_type l) { yydebug_ = l; } #endif // YYDEBUG - SysYParser::state_type - SysYParser::yy_lr_goto_state_ (state_type yystate, int yysym) + SysYFParser::state_type + SysYFParser::yy_lr_goto_state_ (state_type yystate, int yysym) { int yyr = yypgoto_[yysym - YYNTOKENS] + yystate; if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) @@ -730,25 +730,25 @@ namespace yy { } bool - SysYParser::yy_pact_value_is_default_ (int yyvalue) + SysYFParser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } bool - SysYParser::yy_table_value_is_error_ (int yyvalue) + SysYFParser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } int - SysYParser::operator() () + SysYFParser::operator() () { return parse (); } int - SysYParser::parse () + SysYFParser::parse () { int yyn; /// Length of the RHS of the rule being reduced. @@ -775,13 +775,13 @@ namespace yy { // User initialization code. -#line 24 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 24 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } -#line 785 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 785 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" /* Initialize the stack. The initial state will be set in @@ -1011,107 +1011,107 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; switch (yyn) { case 2: // Begin: CompUnit END -#line 106 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 106 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::Assembly* > ()->loc = yylhs.location; driver.root = yystack_[1].value.as < SyntaxTree::Assembly* > (); return 0; } -#line 1021 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1021 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 3: // CompUnit: CompUnit GlobalDecl -#line 113 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 113 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::Assembly* > ()->global_defs.insert(yystack_[1].value.as < SyntaxTree::Assembly* > ()->global_defs.end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); yylhs.value.as < SyntaxTree::Assembly* > ()=yystack_[1].value.as < SyntaxTree::Assembly* > (); } -#line 1030 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1030 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 4: // CompUnit: GlobalDecl -#line 117 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 117 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Assembly* > ()=new SyntaxTree::Assembly(); yylhs.value.as < SyntaxTree::Assembly* > ()->global_defs.insert(yylhs.value.as < SyntaxTree::Assembly* > ()->global_defs.end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); } -#line 1039 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1039 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 5: // GlobalDecl: ConstDecl -#line 123 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 123 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().insert(yylhs.value.as < SyntaxTree::PtrList > ().end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); } -#line 1048 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1048 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 6: // GlobalDecl: VarDecl -#line 127 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 127 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().insert(yylhs.value.as < SyntaxTree::PtrList > ().end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); } -#line 1057 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1057 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 7: // GlobalDecl: FuncDef -#line 131 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 131 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::FuncDef* > ())); } -#line 1066 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1066 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 8: // ConstDecl: CONST BType ConstDefList SEMICOLON -#line 137 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 137 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=yystack_[1].value.as < SyntaxTree::PtrList > (); for (auto &node : yylhs.value.as < SyntaxTree::PtrList > ()) { node->btype = yystack_[2].value.as < SyntaxTree::Type > (); } } -#line 1077 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1077 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 9: // ConstDefList: ConstDefList COMMA ConstDef -#line 144 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 144 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[2].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::VarDef* > ())); yylhs.value.as < SyntaxTree::PtrList > ()=yystack_[2].value.as < SyntaxTree::PtrList > (); } -#line 1086 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1086 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 10: // ConstDefList: ConstDef -#line 148 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 148 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::VarDef* > ())); } -#line 1095 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1095 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 11: // BType: INT -#line 154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Type > ()=SyntaxTree::Type::INT; } -#line 1103 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1103 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 12: // BType: FLOAT -#line 157 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 157 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Type > ()=SyntaxTree::Type::FLOAT; } -#line 1111 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1111 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 13: // ConstDef: IDENTIFIER ArrayExpList ASSIGN InitVal -#line 163 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 163 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::VarDef* > ()=new SyntaxTree::VarDef(); yylhs.value.as < SyntaxTree::VarDef* > ()->is_constant = true; @@ -1121,40 +1121,40 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::VarDef* > ()->initializers = SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::InitVal* > ()); yylhs.value.as < SyntaxTree::VarDef* > ()->loc = yylhs.location; } -#line 1125 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1125 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 14: // VarDecl: BType VarDefList SEMICOLON -#line 174 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 174 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=yystack_[1].value.as < SyntaxTree::PtrList > (); for (auto &node : yylhs.value.as < SyntaxTree::PtrList > ()) { node->btype = yystack_[2].value.as < SyntaxTree::Type > (); } } -#line 1136 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1136 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 15: // VarDefList: VarDefList COMMA VarDef -#line 182 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 182 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[2].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::VarDef* > ())); yylhs.value.as < SyntaxTree::PtrList > ()=yystack_[2].value.as < SyntaxTree::PtrList > (); } -#line 1145 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1145 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 16: // VarDefList: VarDef -#line 186 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 186 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::VarDef* > ())); } -#line 1154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 17: // VarDef: IDENTIFIER ArrayExpList -#line 192 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 192 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::VarDef* > ()=new SyntaxTree::VarDef(); yylhs.value.as < SyntaxTree::VarDef* > ()->name=yystack_[1].value.as < std::string > (); @@ -1162,11 +1162,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::VarDef* > ()->is_inited = false; yylhs.value.as < SyntaxTree::VarDef* > ()->loc = yylhs.location; } -#line 1166 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1166 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 18: // VarDef: IDENTIFIER ArrayExpList ASSIGN InitVal -#line 199 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 199 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::VarDef* > () = new SyntaxTree::VarDef(); yylhs.value.as < SyntaxTree::VarDef* > ()->name = yystack_[3].value.as < std::string > (); @@ -1175,28 +1175,28 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::VarDef* > ()->is_inited = true; yylhs.value.as < SyntaxTree::VarDef* > ()->loc = yylhs.location; } -#line 1179 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1179 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 19: // ArrayExpList: ArrayExpList LBRACKET Exp RBRACKET -#line 209 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 209 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[3].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::Expr* > ())); yylhs.value.as < SyntaxTree::PtrList > ()=yystack_[3].value.as < SyntaxTree::PtrList > (); } -#line 1188 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1188 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 20: // ArrayExpList: %empty -#line 213 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 213 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > ()=SyntaxTree::PtrList(); } -#line 1196 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1196 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 21: // InitVal: Exp -#line 218 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 218 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::InitVal* > () = new SyntaxTree::InitVal(); yylhs.value.as < SyntaxTree::InitVal* > ()->isExp = true; @@ -1204,28 +1204,28 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::InitVal* > ()->expr = SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::Expr* > ()); yylhs.value.as < SyntaxTree::InitVal* > ()->loc = yylhs.location; } -#line 1208 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1208 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 22: // InitVal: LBRACE InitValList RBRACE -#line 225 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 225 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::InitVal* > () = yystack_[1].value.as < SyntaxTree::InitVal* > (); } -#line 1216 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1216 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 23: // InitValList: CommaInitValList InitVal -#line 230 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 230 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::InitVal* > ()->elementList.push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::InitVal* > ())); yylhs.value.as < SyntaxTree::InitVal* > () = yystack_[1].value.as < SyntaxTree::InitVal* > (); } -#line 1225 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1225 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 24: // InitValList: %empty -#line 234 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 234 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::InitVal* > () = new SyntaxTree::InitVal(); yylhs.value.as < SyntaxTree::InitVal* > ()->isExp = false; @@ -1234,20 +1234,20 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::InitVal* > ()->expr = nullptr; yylhs.value.as < SyntaxTree::InitVal* > ()->loc = yylhs.location; } -#line 1238 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1238 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 25: // CommaInitValList: CommaInitValList InitVal COMMA -#line 244 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 244 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[2].value.as < SyntaxTree::InitVal* > ()->elementList.push_back(SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::InitVal* > ())); yylhs.value.as < SyntaxTree::InitVal* > () = yystack_[2].value.as < SyntaxTree::InitVal* > (); } -#line 1247 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1247 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 26: // CommaInitValList: %empty -#line 248 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 248 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::InitVal* > () = new SyntaxTree::InitVal(); yylhs.value.as < SyntaxTree::InitVal* > ()->isExp = false; @@ -1256,45 +1256,45 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::InitVal* > ()->expr = nullptr; yylhs.value.as < SyntaxTree::InitVal* > ()->loc = yylhs.location; } -#line 1260 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1260 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 27: // ExpList: CommaExpList Exp -#line 258 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 258 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::Expr* > ())); yylhs.value.as < SyntaxTree::PtrList > () = yystack_[1].value.as < SyntaxTree::PtrList > (); } -#line 1269 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1269 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 28: // ExpList: %empty -#line 262 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 262 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); } -#line 1277 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1277 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 29: // CommaExpList: CommaExpList Exp COMMA -#line 267 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 267 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[2].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::Expr* > ())); yylhs.value.as < SyntaxTree::PtrList > () = yystack_[2].value.as < SyntaxTree::PtrList > (); } -#line 1286 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1286 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 30: // CommaExpList: %empty -#line 271 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 271 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); } -#line 1294 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1294 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 31: // FuncFParam: BType IDENTIFIER ArrayExpList -#line 277 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 277 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::FuncParam* > () = new SyntaxTree::FuncParam(); yylhs.value.as < SyntaxTree::FuncParam* > ()->param_type = yystack_[2].value.as < SyntaxTree::Type > (); @@ -1302,11 +1302,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::FuncParam* > ()->array_index = yystack_[0].value.as < SyntaxTree::PtrList > (); yylhs.value.as < SyntaxTree::FuncParam* > ()->loc = yylhs.location; } -#line 1306 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1306 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 32: // FuncFParam: BType IDENTIFIER LRBRACKET ArrayExpList -#line 284 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 284 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::FuncParam* > () = new SyntaxTree::FuncParam(); yylhs.value.as < SyntaxTree::FuncParam* > ()->param_type = yystack_[3].value.as < SyntaxTree::Type > (); @@ -1315,45 +1315,45 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::FuncParam* > ()->array_index.insert(yylhs.value.as < SyntaxTree::FuncParam* > ()->array_index.begin(),nullptr); yylhs.value.as < SyntaxTree::FuncParam* > ()->loc = yylhs.location; } -#line 1319 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1319 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 33: // FParamList: CommaFParamList FuncFParam -#line 294 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 294 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::FuncParam* > ())); yylhs.value.as < SyntaxTree::PtrList > () = yystack_[1].value.as < SyntaxTree::PtrList > (); } -#line 1328 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1328 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 34: // FParamList: %empty -#line 298 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 298 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); } -#line 1336 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1336 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 35: // CommaFParamList: CommaFParamList FuncFParam COMMA -#line 303 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 303 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[2].value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::FuncParam* > ())); yylhs.value.as < SyntaxTree::PtrList > () = yystack_[2].value.as < SyntaxTree::PtrList > (); } -#line 1345 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1345 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 36: // CommaFParamList: %empty -#line 307 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 307 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); } -#line 1353 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1353 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 37: // FuncDef: BType IDENTIFIER LPARENTHESE FParamList RPARENTHESE Block -#line 311 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 311 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::FuncDef* > () = new SyntaxTree::FuncDef(); yylhs.value.as < SyntaxTree::FuncDef* > ()->ret_type = yystack_[5].value.as < SyntaxTree::Type > (); @@ -1364,11 +1364,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::FuncDef* > ()->body = SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::BlockStmt* > ()); yylhs.value.as < SyntaxTree::FuncDef* > ()->loc = yylhs.location; } -#line 1368 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1368 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 38: // FuncDef: VOID IDENTIFIER LPARENTHESE FParamList RPARENTHESE Block -#line 321 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 321 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::FuncDef* > () = new SyntaxTree::FuncDef(); yylhs.value.as < SyntaxTree::FuncDef* > ()->ret_type = SyntaxTree::Type::VOID; @@ -1379,65 +1379,65 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::FuncDef* > ()->body = SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::BlockStmt* > ()); yylhs.value.as < SyntaxTree::FuncDef* > ()->loc = yylhs.location; } -#line 1383 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1383 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 39: // Block: LBRACE BlockItemList RBRACE -#line 333 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 333 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::BlockStmt* > () = new SyntaxTree::BlockStmt(); yylhs.value.as < SyntaxTree::BlockStmt* > ()->body = yystack_[1].value.as < SyntaxTree::PtrList > (); yylhs.value.as < SyntaxTree::BlockStmt* > ()->loc = yylhs.location; } -#line 1393 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1393 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 40: // BlockItemList: BlockItemList BlockItem -#line 340 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 340 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yystack_[1].value.as < SyntaxTree::PtrList > ().insert(yystack_[1].value.as < SyntaxTree::PtrList > ().end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); yylhs.value.as < SyntaxTree::PtrList > () = yystack_[1].value.as < SyntaxTree::PtrList > (); } -#line 1402 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1402 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 41: // BlockItemList: %empty -#line 344 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 344 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); } -#line 1410 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1410 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 42: // BlockItem: VarDecl -#line 349 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 349 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().insert(yylhs.value.as < SyntaxTree::PtrList > ().end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); } -#line 1419 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1419 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 43: // BlockItem: ConstDecl -#line 353 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 353 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().insert(yylhs.value.as < SyntaxTree::PtrList > ().end(), yystack_[0].value.as < SyntaxTree::PtrList > ().begin(), yystack_[0].value.as < SyntaxTree::PtrList > ().end()); } -#line 1428 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1428 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 44: // BlockItem: Stmt -#line 357 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 357 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::PtrList > () = SyntaxTree::PtrList(); yylhs.value.as < SyntaxTree::PtrList > ().push_back(SyntaxTree::Ptr(yystack_[0].value.as < SyntaxTree::Stmt* > ())); } -#line 1437 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1437 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 45: // Stmt: LVal ASSIGN Exp SEMICOLON -#line 363 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 363 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::AssignStmt(); temp->target = SyntaxTree::Ptr(yystack_[3].value.as < SyntaxTree::LVal* > ()); @@ -1445,41 +1445,41 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1449 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1449 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 46: // Stmt: Exp SEMICOLON -#line 370 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 370 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::ExprStmt(); temp->exp = SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::Expr* > ()); yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1460 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1460 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 47: // Stmt: RETURN OptionRet SEMICOLON -#line 376 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 376 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::ReturnStmt(); temp->ret = SyntaxTree::Ptr(yystack_[1].value.as < SyntaxTree::Expr* > ()); yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1471 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1471 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 48: // Stmt: Block -#line 382 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 382 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Stmt* > () = yystack_[0].value.as < SyntaxTree::BlockStmt* > (); } -#line 1479 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1479 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 49: // Stmt: WHILE LPARENTHESE CondExp RPARENTHESE Stmt -#line 385 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 385 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::WhileStmt(); temp->cond_exp = SyntaxTree::Ptr(yystack_[2].value.as < SyntaxTree::Expr* > ()); @@ -1487,46 +1487,46 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1491 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1491 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 50: // Stmt: IfStmt -#line 392 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 392 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Stmt* > () = yystack_[0].value.as < SyntaxTree::Stmt* > (); } -#line 1499 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1499 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 51: // Stmt: BREAK SEMICOLON -#line 395 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 395 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Stmt* > () = new SyntaxTree::BreakStmt(); yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1508 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1508 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 52: // Stmt: CONTINUE SEMICOLON -#line 399 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 399 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Stmt* > () = new SyntaxTree::ContinueStmt(); yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1517 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1517 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 53: // Stmt: SEMICOLON -#line 403 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 403 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Stmt* > () = new SyntaxTree::EmptyStmt(); yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1526 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1526 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 54: // IfStmt: IF LPARENTHESE CondExp RPARENTHESE Stmt -#line 409 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 409 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::IfStmt(); temp->cond_exp = SyntaxTree::Ptr(yystack_[2].value.as < SyntaxTree::Expr* > ()); @@ -1535,11 +1535,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1539 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1539 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 55: // IfStmt: IF LPARENTHESE CondExp RPARENTHESE Stmt ELSE Stmt -#line 417 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 417 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::IfStmt(); temp->cond_exp = SyntaxTree::Ptr(yystack_[4].value.as < SyntaxTree::Expr* > ()); @@ -1548,38 +1548,38 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Stmt* > () = temp; yylhs.value.as < SyntaxTree::Stmt* > ()->loc = yylhs.location; } -#line 1552 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1552 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 56: // OptionRet: Exp -#line 427 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 427 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1560 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1560 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 57: // OptionRet: %empty -#line 430 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 430 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = nullptr; } -#line 1568 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1568 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 58: // LVal: IDENTIFIER ArrayExpList -#line 435 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 435 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::LVal* > () = new SyntaxTree::LVal(); yylhs.value.as < SyntaxTree::LVal* > ()->name = yystack_[1].value.as < std::string > (); yylhs.value.as < SyntaxTree::LVal* > ()->array_index = yystack_[0].value.as < SyntaxTree::PtrList > (); yylhs.value.as < SyntaxTree::LVal* > ()->loc = yylhs.location; } -#line 1579 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1579 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 59: // Exp: PLUS Exp -#line 447 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 447 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::UnaryExpr(); temp->op = SyntaxTree::UnaryOp::PLUS; @@ -1587,11 +1587,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1591 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1591 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 60: // Exp: MINUS Exp -#line 454 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 454 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::UnaryExpr(); temp->op = SyntaxTree::UnaryOp::MINUS; @@ -1599,11 +1599,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1603 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1603 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 61: // Exp: NOT Exp -#line 461 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 461 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::UnaryCondExpr(); temp->op = SyntaxTree::UnaryCondOp::NOT; @@ -1611,11 +1611,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1615 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1615 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 62: // Exp: Exp PLUS Exp -#line 468 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 468 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryExpr(); temp->op = SyntaxTree::BinOp::PLUS; @@ -1624,11 +1624,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1628 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1628 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 63: // Exp: Exp MINUS Exp -#line 476 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 476 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryExpr(); temp->op = SyntaxTree::BinOp::MINUS; @@ -1637,11 +1637,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1641 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1641 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 64: // Exp: Exp MULTIPLY Exp -#line 484 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 484 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryExpr(); temp->op = SyntaxTree::BinOp::MULTIPLY; @@ -1650,11 +1650,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1654 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1654 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 65: // Exp: Exp DIVIDE Exp -#line 492 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 492 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryExpr(); temp->op = SyntaxTree::BinOp::DIVIDE; @@ -1663,11 +1663,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1667 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1667 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 66: // Exp: Exp MODULO Exp -#line 500 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 500 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryExpr(); temp->op = SyntaxTree::BinOp::MODULO; @@ -1676,19 +1676,19 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1680 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1680 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 67: // Exp: LPARENTHESE Exp RPARENTHESE -#line 508 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 508 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[1].value.as < SyntaxTree::Expr* > (); } -#line 1688 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1688 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 68: // Exp: IDENTIFIER LPARENTHESE ExpList RPARENTHESE -#line 511 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 511 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::FuncCallStmt(); temp->name = yystack_[3].value.as < std::string > (); @@ -1696,27 +1696,27 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1700 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1700 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 69: // Exp: LVal -#line 518 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 518 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::LVal* > (); } -#line 1708 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1708 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 70: // Exp: Number -#line 521 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 521 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Literal* > (); } -#line 1716 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1716 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 71: // RelExp: RelExp LT Exp -#line 526 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 526 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::LT; @@ -1725,11 +1725,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1729 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1729 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 72: // RelExp: RelExp LTE Exp -#line 534 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 534 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::LTE; @@ -1738,11 +1738,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1742 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1742 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 73: // RelExp: RelExp GT Exp -#line 542 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 542 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::GT; @@ -1751,11 +1751,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1755 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1755 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 74: // RelExp: RelExp GTE Exp -#line 550 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 550 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::GTE; @@ -1764,19 +1764,19 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1768 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1768 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 75: // RelExp: Exp -#line 558 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 558 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1776 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1776 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 76: // EqExp: EqExp EQ RelExp -#line 563 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 563 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::EQ; @@ -1785,11 +1785,11 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1789 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1789 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 77: // EqExp: EqExp NEQ RelExp -#line 571 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 571 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::NEQ; @@ -1798,19 +1798,19 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1802 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1802 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 78: // EqExp: RelExp -#line 579 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 579 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1810 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1810 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 79: // LAndExp: LAndExp LOGICAND EqExp -#line 584 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 584 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::LAND; @@ -1819,19 +1819,19 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1823 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1823 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 80: // LAndExp: EqExp -#line 592 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 592 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1831 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1831 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 81: // LOrExp: LOrExp LOGICOR LAndExp -#line 597 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 597 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { auto temp = new SyntaxTree::BinaryCondExpr(); temp->op = SyntaxTree::BinaryCondOp::LOR; @@ -1840,49 +1840,49 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; yylhs.value.as < SyntaxTree::Expr* > () = temp; yylhs.value.as < SyntaxTree::Expr* > ()->loc = yylhs.location; } -#line 1844 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1844 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 82: // LOrExp: LAndExp -#line 605 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 605 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1852 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1852 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 83: // CondExp: LOrExp -#line 610 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 610 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Expr* > () = yystack_[0].value.as < SyntaxTree::Expr* > (); } -#line 1860 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1860 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 84: // Number: INTCONST -#line 615 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 615 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Literal* > () = new SyntaxTree::Literal(); yylhs.value.as < SyntaxTree::Literal* > ()->literal_type = SyntaxTree::Type::INT; yylhs.value.as < SyntaxTree::Literal* > ()->int_const = yystack_[0].value.as < int > (); yylhs.value.as < SyntaxTree::Literal* > ()->loc = yylhs.location; } -#line 1871 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1871 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; case 85: // Number: FLOATCONST -#line 621 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 621 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" { yylhs.value.as < SyntaxTree::Literal* > () = new SyntaxTree::Literal(); yylhs.value.as < SyntaxTree::Literal* > ()->literal_type = SyntaxTree::Type::FLOAT; yylhs.value.as < SyntaxTree::Literal* > ()->float_const = yystack_[0].value.as < float > (); yylhs.value.as < SyntaxTree::Literal* > ()->loc = yylhs.location; } -#line 1882 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1882 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" break; -#line 1886 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 1886 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" default: break; @@ -2055,7 +2055,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } void - SysYParser::error (const syntax_error& yyexc) + SysYFParser::error (const syntax_error& yyexc) { error (yyexc.location, yyexc.what ()); } @@ -2066,7 +2066,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. */ std::string - SysYParser::yytnamerr_ (const char *yystr) + SysYFParser::yytnamerr_ (const char *yystr) { if (*yystr == '"') { @@ -2101,21 +2101,21 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } std::string - SysYParser::symbol_name (symbol_kind_type yysymbol) + SysYFParser::symbol_name (symbol_kind_type yysymbol) { return yytnamerr_ (yytname_[yysymbol]); } - // SysYParser::context. - SysYParser::context::context (const SysYParser& yyparser, const symbol_type& yyla) + // SysYFParser::context. + SysYFParser::context::context (const SysYFParser& yyparser, const symbol_type& yyla) : yyparser_ (yyparser) , yyla_ (yyla) {} int - SysYParser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const + SysYFParser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const { // Actual number of expected tokens int yycount = 0; @@ -2151,7 +2151,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; int - SysYParser::yy_syntax_error_arguments_ (const context& yyctx, + SysYFParser::yy_syntax_error_arguments_ (const context& yyctx, symbol_kind_type yyarg[], int yyargn) const { /* There are many possibilities here to consider: @@ -2191,7 +2191,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; // Generate an error message. std::string - SysYParser::yysyntax_error_ (const context& yyctx) const + SysYFParser::yysyntax_error_ (const context& yyctx) const { // Its maximum. enum { YYARGS_MAX = 5 }; @@ -2231,12 +2231,12 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } - const signed char SysYParser::yypact_ninf_ = -116; + const signed char SysYFParser::yypact_ninf_ = -116; - const signed char SysYParser::yytable_ninf_ = -35; + const signed char SysYFParser::yytable_ninf_ = -35; const short - SysYParser::yypact_[] = + SysYFParser::yypact_[] = { -8, -116, -25, -18, -116, 9, 20, -116, -116, -3, -116, -116, -5, 5, -116, -116, -116, 27, 136, -116, @@ -2257,7 +2257,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const signed char - SysYParser::yydefact_[] = + SysYFParser::yydefact_[] = { 0, 11, 0, 0, 12, 0, 0, 4, 5, 0, 6, 7, 0, 0, 1, 2, 3, 20, 0, 16, @@ -2278,7 +2278,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const short - SysYParser::yypgoto_[] = + SysYFParser::yypgoto_[] = { -116, -116, -116, 180, 112, -116, -1, 162, 113, -116, 164, -17, -35, -116, -116, -116, -116, -116, 168, -116, @@ -2287,7 +2287,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const signed char - SysYParser::yydefgoto_[] = + SysYFParser::yydefgoto_[] = { 0, 5, 6, 7, 8, 22, 9, 23, 10, 18, 19, 25, 52, 66, 67, 83, 84, 40, 28, 29, @@ -2296,7 +2296,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const short - SysYParser::yytable_[] = + SysYFParser::yytable_[] = { 54, 56, 13, 104, 30, 12, 61, 54, 1, 14, 63, 64, 65, 20, 128, 129, 130, 70, 1, 58, @@ -2321,7 +2321,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const unsigned char - SysYParser::yycheck_[] = + SysYFParser::yycheck_[] = { 34, 35, 3, 77, 21, 30, 41, 41, 26, 0, 44, 45, 46, 18, 10, 11, 12, 51, 26, 38, @@ -2346,7 +2346,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const signed char - SysYParser::yystos_[] = + SysYFParser::yystos_[] = { 0, 26, 28, 37, 44, 54, 55, 56, 57, 59, 61, 73, 30, 59, 0, 3, 56, 30, 62, 63, @@ -2367,7 +2367,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const signed char - SysYParser::yyr1_[] = + SysYFParser::yyr1_[] = { 0, 53, 54, 55, 55, 56, 56, 56, 57, 58, 58, 59, 59, 60, 61, 62, 62, 63, 63, 64, @@ -2381,7 +2381,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; const signed char - SysYParser::yyr2_[] = + SysYFParser::yyr2_[] = { 0, 2, 2, 2, 1, 1, 1, 1, 4, 3, 1, 1, 1, 4, 3, 3, 1, 2, 4, 4, @@ -2399,7 +2399,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. const char* - const SysYParser::yytname_[] = + const SysYFParser::yytname_[] = { "\"end of file\"", "error", "\"invalid token\"", "END", "ERROR", "PLUS", "MINUS", "MULTIPLY", "DIVIDE", "MODULO", "LTE", "GT", "GTE", "EQ", "NEQ", @@ -2421,7 +2421,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; #if YYDEBUG const short - SysYParser::yyrline_[] = + SysYFParser::yyrline_[] = { 0, 106, 106, 113, 117, 123, 127, 131, 137, 144, 148, 154, 157, 163, 174, 182, 186, 192, 199, 209, @@ -2435,7 +2435,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; }; void - SysYParser::yy_stack_print_ () const + SysYFParser::yy_stack_print_ () const { *yycdebug_ << "Stack now"; for (stack_type::const_iterator @@ -2447,7 +2447,7 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } void - SysYParser::yy_reduce_print_ (int yyrule) const + SysYFParser::yy_reduce_print_ (int yyrule) const { int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; @@ -2463,13 +2463,13 @@ yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } // yy -#line 2467 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYParser.cpp" +#line 2467 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFParser.cpp" -#line 629 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYParser.yy" +#line 629 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFParser.yy" // Register errors to the driver: -void yy::SysYParser::error (const location_type& l, +void yy::SysYFParser::error (const location_type& l, const std::string& m) { driver.error(l, m); diff --git a/src/Grammar/SysYScanner.cpp b/src/Grammar/SysYFScanner.cpp similarity index 97% rename from src/Grammar/SysYScanner.cpp rename to src/Grammar/SysYFScanner.cpp index 003b9b8..ab78039 100644 --- a/src/Grammar/SysYScanner.cpp +++ b/src/Grammar/SysYFScanner.cpp @@ -1,6 +1,6 @@ -#line 2 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYScanner.cpp" +#line 2 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFScanner.cpp" -#line 4 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYScanner.cpp" +#line 4 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFScanner.cpp" #define YY_INT_ALIGNED short int @@ -597,8 +597,8 @@ static yyconst flex_int16_t yy_rule_linenum[45] = #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -#line 1 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" -#line 2 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 1 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" +#line 2 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" # include # include # include @@ -631,18 +631,18 @@ std::map ch2int = { {'E',14}, {'F',15} }; -# include "SysYDriver.h" -# include "SysYParser.h" +# include "SysYFDriver.h" +# include "SysYFParser.h" # define RET_NOTYPE_TOKEN(name) \ - auto mytoken = yy::SysYParser::make_##name(loc);\ + auto mytoken = yy::SysYFParser::make_##name(loc);\ loc.step();\ return mytoken; # define RET_TYPE_TOKEN(name, value) \ - auto mytoken = yy::SysYParser::make_##name(value, loc);\ + auto mytoken = yy::SysYFParser::make_##name(value, loc);\ loc.step();\ return mytoken; -#line 48 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 48 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" #if defined __clang__ # define CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) #endif @@ -704,11 +704,11 @@ std::map ch2int = { # endif #endif #define YY_NO_INPUT 1 -#line 113 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 113 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" // Code run each time a pattern is matched. # define YY_USER_ACTION loc.columns(yyleng); /* Regex abbreviations: */ -#line 712 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYScanner.cpp" +#line 712 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFScanner.cpp" #define INITIAL 0 @@ -905,10 +905,10 @@ YY_DECL { /* %% [7.0] user's declarations go here */ -#line 129 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 129 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" /* keyword */ -#line 912 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYScanner.cpp" +#line 912 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFScanner.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -985,190 +985,190 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 131 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 131 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(FLOAT);} YY_BREAK case 2: YY_RULE_SETUP -#line 132 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 132 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(INT);} YY_BREAK case 3: YY_RULE_SETUP -#line 133 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 133 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(RETURN);} YY_BREAK case 4: YY_RULE_SETUP -#line 134 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 134 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(VOID);} YY_BREAK case 5: YY_RULE_SETUP -#line 135 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 135 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(CONST);} YY_BREAK case 6: YY_RULE_SETUP -#line 136 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 136 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(BREAK);} YY_BREAK case 7: YY_RULE_SETUP -#line 137 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 137 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(CONTINUE);} YY_BREAK case 8: YY_RULE_SETUP -#line 138 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 138 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(WHILE);} YY_BREAK case 9: YY_RULE_SETUP -#line 139 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 139 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(IF);} YY_BREAK case 10: YY_RULE_SETUP -#line 140 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 140 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(ELSE);} YY_BREAK case 11: YY_RULE_SETUP -#line 142 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 142 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LT);} YY_BREAK case 12: YY_RULE_SETUP -#line 143 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 143 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LTE);} YY_BREAK case 13: YY_RULE_SETUP -#line 144 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 144 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(GT);} YY_BREAK case 14: YY_RULE_SETUP -#line 145 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 145 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(GTE);} YY_BREAK case 15: YY_RULE_SETUP -#line 146 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 146 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(EQ);} YY_BREAK case 16: YY_RULE_SETUP -#line 147 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 147 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(NEQ);} YY_BREAK case 17: YY_RULE_SETUP -#line 148 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 148 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(NOT);} YY_BREAK case 18: YY_RULE_SETUP -#line 149 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 149 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LOGICAND);} YY_BREAK case 19: YY_RULE_SETUP -#line 150 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 150 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LOGICOR);} YY_BREAK case 20: YY_RULE_SETUP -#line 151 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 151 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(PLUS);} YY_BREAK case 21: YY_RULE_SETUP -#line 152 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 152 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(MINUS);} YY_BREAK case 22: YY_RULE_SETUP -#line 153 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 153 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(MULTIPLY);} YY_BREAK case 23: YY_RULE_SETUP -#line 154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 154 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(DIVIDE);} YY_BREAK case 24: YY_RULE_SETUP -#line 155 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 155 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(MODULO);} YY_BREAK case 25: YY_RULE_SETUP -#line 156 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 156 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(ASSIGN);} YY_BREAK case 26: YY_RULE_SETUP -#line 157 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 157 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(SEMICOLON);} YY_BREAK case 27: YY_RULE_SETUP -#line 158 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 158 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(COMMA);} YY_BREAK case 28: YY_RULE_SETUP -#line 159 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 159 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LPARENTHESE);} YY_BREAK case 29: YY_RULE_SETUP -#line 160 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 160 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(RPARENTHESE);} YY_BREAK case 30: YY_RULE_SETUP -#line 161 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 161 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LBRACKET);} YY_BREAK case 31: YY_RULE_SETUP -#line 162 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 162 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(RBRACKET);} YY_BREAK case 32: YY_RULE_SETUP -#line 163 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 163 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LBRACE);} YY_BREAK case 33: YY_RULE_SETUP -#line 164 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 164 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(RBRACE);} YY_BREAK case 34: /* rule 34 can match eol */ YY_RULE_SETUP -#line 167 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 167 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(LRBRACKET);} YY_BREAK case 35: YY_RULE_SETUP -#line 168 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 168 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {loc.step();} YY_BREAK case 36: /* rule 36 can match eol */ YY_RULE_SETUP -#line 169 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 169 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {loc.lines(yyleng); loc.step();} YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP -#line 170 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 170 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {std::string s = yytext; size_t n = std::count(s.begin(), s.end(), '\n'); for (size_t i = 0; i < n; i++) loc.lines(1);} @@ -1176,12 +1176,12 @@ YY_RULE_SETUP case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 173 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 173 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {loc.lines(1);loc.step();} YY_BREAK case 39: YY_RULE_SETUP -#line 174 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 174 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {std::string dec = yytext; unsigned sum = 0; int len = dec.size(); @@ -1193,7 +1193,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 182 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 182 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {std::string hex = yytext; unsigned sum = 0; int len = hex.size(); @@ -1205,7 +1205,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 190 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 190 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {std::string oct = yytext; unsigned sum = 0; int len = oct.size(); @@ -1217,29 +1217,29 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 198 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 198 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_TYPE_TOKEN(IDENTIFIER, yytext);} YY_BREAK case 43: YY_RULE_SETUP -#line 199 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 199 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_TYPE_TOKEN(FLOATCONST, std::stod(yytext));} YY_BREAK case YY_STATE_EOF(INITIAL): -#line 200 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 200 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {RET_NOTYPE_TOKEN(END);} YY_BREAK case 44: YY_RULE_SETUP -#line 201 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 201 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" {std::cout << "Error in scanner!" << '\n'; exit(1);} YY_BREAK case 45: YY_RULE_SETUP -#line 202 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 202 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" ECHO; YY_BREAK -#line 1243 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYScanner.cpp" +#line 1243 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/build/SysYFScanner.cpp" case YY_END_OF_BUFFER: { @@ -2350,7 +2350,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 202 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYScanner.ll" +#line 202 "/home/hzq/SysYF_IR_Lab/2021_sysycompiler_ir_lab/grammar/SysYFScanner.ll" diff --git a/src/SysYBuilder/CMakeLists.txt b/src/SysYBuilder/CMakeLists.txt deleted file mode 100644 index f167a15..0000000 --- a/src/SysYBuilder/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -add_library( - SysYBuilder STATIC - SysYBuilder.cpp -) diff --git a/src/SysYBuilder/SysYBuilder.cpp b/src/SysYBuilder/SysYBuilder.cpp deleted file mode 100644 index 96b6944..0000000 --- a/src/SysYBuilder/SysYBuilder.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "SysYBuilder.hpp" - -#define CONST_INT(num) ConstantInt::get(num, module.get()) -#define CONST_FLOAT(num) ConstantFloat::get(num, module.get()) - -// You can define global variables and functions here -// to store state - -// store temporary value -Value *tmp_val = nullptr; - -// types -Type *VOID_T; -Type *INT1_T; -Type *INT32_T; -Type *FLOAT_T; -Type *INT32PTR_T; -Type *FLOATPTR_T; - -void SysYBuilder::visit(SyntaxTree::Assembly &node) { - VOID_T = Type::get_void_type(module.get()); - INT1_T = Type::get_int1_type(module.get()); - INT32_T = Type::get_int32_type(module.get()); - FLOAT_T = Type::get_float_type(module.get()); - INT32PTR_T = Type::get_int32_ptr_type(module.get()); - FLOATPTR_T = Type::get_float_ptr_type(module.get()); - for (const auto &def : node.global_defs) { - def->accept(*this); - } -} - -// You need to fill them - -void SysYBuilder::visit(SyntaxTree::InitVal &node) {} - -void SysYBuilder::visit(SyntaxTree::FuncDef &node) {} - -void SysYBuilder::visit(SyntaxTree::FuncFParamList &node) {} - -void SysYBuilder::visit(SyntaxTree::FuncParam &node) {} - -void SysYBuilder::visit(SyntaxTree::VarDef &node) {} - -void SysYBuilder::visit(SyntaxTree::LVal &node) {} - -void SysYBuilder::visit(SyntaxTree::AssignStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::Literal &node) {} - -void SysYBuilder::visit(SyntaxTree::ReturnStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::BlockStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::EmptyStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::ExprStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::UnaryCondExpr &node) {} - -void SysYBuilder::visit(SyntaxTree::BinaryCondExpr &node) {} - -void SysYBuilder::visit(SyntaxTree::BinaryExpr &node) {} - -void SysYBuilder::visit(SyntaxTree::UnaryExpr &node) {} - -void SysYBuilder::visit(SyntaxTree::FuncCallStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::IfStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::WhileStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::BreakStmt &node) {} - -void SysYBuilder::visit(SyntaxTree::ContinueStmt &node) {} diff --git a/src/SysYFBuilder/CMakeLists.txt b/src/SysYFBuilder/CMakeLists.txt new file mode 100644 index 0000000..9fe36ff --- /dev/null +++ b/src/SysYFBuilder/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library( + SysYFBuilder STATIC + SysYFBuilder.cpp +) diff --git a/src/SysYFBuilder/SysYFBuilder.cpp b/src/SysYFBuilder/SysYFBuilder.cpp new file mode 100644 index 0000000..6cbfb44 --- /dev/null +++ b/src/SysYFBuilder/SysYFBuilder.cpp @@ -0,0 +1,74 @@ +#include "SysYFBuilder.hpp" + +#define CONST_INT(num) ConstantInt::get(num, module.get()) +#define CONST_FLOAT(num) ConstantFloat::get(num, module.get()) + +// You can define global variables and functions here +// to store state + +// store temporary value +Value *tmp_val = nullptr; + +// types +Type *VOID_T; +Type *INT1_T; +Type *INT32_T; +Type *FLOAT_T; +Type *INT32PTR_T; +Type *FLOATPTR_T; + +void SysYFBuilder::visit(SyntaxTree::Assembly &node) { + VOID_T = Type::get_void_type(module.get()); + INT1_T = Type::get_int1_type(module.get()); + INT32_T = Type::get_int32_type(module.get()); + FLOAT_T = Type::get_float_type(module.get()); + INT32PTR_T = Type::get_int32_ptr_type(module.get()); + FLOATPTR_T = Type::get_float_ptr_type(module.get()); + for (const auto &def : node.global_defs) { + def->accept(*this); + } +} + +// You need to fill them + +void SysYFBuilder::visit(SyntaxTree::InitVal &node) {} + +void SysYFBuilder::visit(SyntaxTree::FuncDef &node) {} + +void SysYFBuilder::visit(SyntaxTree::FuncFParamList &node) {} + +void SysYFBuilder::visit(SyntaxTree::FuncParam &node) {} + +void SysYFBuilder::visit(SyntaxTree::VarDef &node) {} + +void SysYFBuilder::visit(SyntaxTree::LVal &node) {} + +void SysYFBuilder::visit(SyntaxTree::AssignStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::Literal &node) {} + +void SysYFBuilder::visit(SyntaxTree::ReturnStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::BlockStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::EmptyStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::ExprStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::UnaryCondExpr &node) {} + +void SysYFBuilder::visit(SyntaxTree::BinaryCondExpr &node) {} + +void SysYFBuilder::visit(SyntaxTree::BinaryExpr &node) {} + +void SysYFBuilder::visit(SyntaxTree::UnaryExpr &node) {} + +void SysYFBuilder::visit(SyntaxTree::FuncCallStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::IfStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::WhileStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::BreakStmt &node) {} + +void SysYFBuilder::visit(SyntaxTree::ContinueStmt &node) {} diff --git a/src/SysYIR/BasicBlock.cpp b/src/SysYFIR/BasicBlock.cpp similarity index 100% rename from src/SysYIR/BasicBlock.cpp rename to src/SysYFIR/BasicBlock.cpp diff --git a/src/SysYIR/CMakeLists.txt b/src/SysYFIR/CMakeLists.txt similarity index 100% rename from src/SysYIR/CMakeLists.txt rename to src/SysYFIR/CMakeLists.txt diff --git a/src/SysYIR/Constant.cpp b/src/SysYFIR/Constant.cpp similarity index 100% rename from src/SysYIR/Constant.cpp rename to src/SysYFIR/Constant.cpp diff --git a/src/SysYIR/Function.cpp b/src/SysYFIR/Function.cpp similarity index 100% rename from src/SysYIR/Function.cpp rename to src/SysYFIR/Function.cpp diff --git a/src/SysYIR/GlobalVariable.cpp b/src/SysYFIR/GlobalVariable.cpp similarity index 100% rename from src/SysYIR/GlobalVariable.cpp rename to src/SysYFIR/GlobalVariable.cpp diff --git a/src/SysYIR/IRprinter.cpp b/src/SysYFIR/IRprinter.cpp similarity index 100% rename from src/SysYIR/IRprinter.cpp rename to src/SysYFIR/IRprinter.cpp diff --git a/src/SysYIR/Instruction.cpp b/src/SysYFIR/Instruction.cpp similarity index 100% rename from src/SysYIR/Instruction.cpp rename to src/SysYFIR/Instruction.cpp diff --git a/src/SysYIR/Module.cpp b/src/SysYFIR/Module.cpp similarity index 100% rename from src/SysYIR/Module.cpp rename to src/SysYFIR/Module.cpp diff --git a/src/SysYIR/Type.cpp b/src/SysYFIR/Type.cpp similarity index 100% rename from src/SysYIR/Type.cpp rename to src/SysYFIR/Type.cpp diff --git a/src/SysYIR/User.cpp b/src/SysYFIR/User.cpp similarity index 100% rename from src/SysYIR/User.cpp rename to src/SysYFIR/User.cpp diff --git a/src/SysYIR/Value.cpp b/src/SysYFIR/Value.cpp similarity index 100% rename from src/SysYIR/Value.cpp rename to src/SysYFIR/Value.cpp diff --git a/src/main.cpp b/src/main.cpp index 7890d7a..7917bed 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ #include -#include "SysYBuilder.hpp" -#include "SysYDriver.h" +#include "SysYFBuilder.hpp" +#include "SysYFDriver.h" #include "SyntaxTreePrinter.h" #include "ErrorReporter.h" @@ -14,8 +14,8 @@ void print_help(const std::string& exe_name) { int main(int argc, char *argv[]) { - SysYBuilder builder; - SysYDriver driver; + SysYFBuilder builder; + SysYFDriver driver; SyntaxTreePrinter printer; ErrorReporter reporter(std::cerr);