hotspot/src/share/vm/adlc/adlparse.hpp
changeset 1662 76a93a5fb765
parent 1495 128fe18951ed
child 1675 cc1a5096e88f
equal deleted inserted replaced
1661:7cb0f0d385f3 1662:76a93a5fb765
    91   void encode_parse(void);      // Parse encoding section
    91   void encode_parse(void);      // Parse encoding section
    92   void frame_parse(void);       // Parse frame section
    92   void frame_parse(void);       // Parse frame section
    93   void pipe_parse(void);        // Parse pipeline section
    93   void pipe_parse(void);        // Parse pipeline section
    94   void definitions_parse(void); // Parse definitions section
    94   void definitions_parse(void); // Parse definitions section
    95   void peep_parse(void);        // Parse peephole rule definitions
    95   void peep_parse(void);        // Parse peephole rule definitions
       
    96   void preproc_line(void);      // Parse a #line statement
    96   void preproc_define(void);    // Parse a #define statement
    97   void preproc_define(void);    // Parse a #define statement
    97   void preproc_undef(void);     // Parse an #undef statement
    98   void preproc_undef(void);     // Parse an #undef statement
    98 
    99 
    99   // Helper functions for instr_parse().
   100   // Helper functions for instr_parse().
   100   void adjust_set_rule(InstructForm *instr);
   101   void adjust_set_rule(InstructForm *instr);
   224 
   225 
   225   void  get_oplist(NameList &parameters, FormDict &operands);// Parse type-operand pairs
   226   void  get_oplist(NameList &parameters, FormDict &operands);// Parse type-operand pairs
   226   void  get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs
   227   void  get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs
   227   // Return the contents of a parenthesized expression.
   228   // Return the contents of a parenthesized expression.
   228   // Requires initial '(' and consumes final ')', which is replaced by '\0'.
   229   // Requires initial '(' and consumes final ')', which is replaced by '\0'.
   229   char *get_paren_expr(const char *description);
   230   char *get_paren_expr(const char *description, bool include_location = false);
   230   // Return expression up to next stop-char, which terminator replaces.
   231   // Return expression up to next stop-char, which terminator replaces.
   231   // Does not require initial '('.  Does not consume final stop-char.
   232   // Does not require initial '('.  Does not consume final stop-char.
   232   // Final stop-char is left in _curchar, but is also is replaced by '\0'.
   233   // Final stop-char is left in _curchar, but is also is replaced by '\0'.
   233   char *get_expr(const char *description, const char *stop_chars);
   234   char *get_expr(const char *description, const char *stop_chars);
   234   char *find_cpp_block(const char *description); // Parse a C++ code block
   235   char *find_cpp_block(const char *description); // Parse a C++ code block
   235   // Issue parser error message & go to EOL
   236   // Issue parser error message & go to EOL
   236   void parse_err(int flag, const char *fmt, ...);
   237   void parse_err(int flag, const char *fmt, ...);
       
   238   // Create a location marker for this file and line.
       
   239   char *get_line_string(int linenum = 0);
       
   240   // Return a location marker which tells the C preprocessor to
       
   241   // forget the previous location marker.  (Requires awk postprocessing.)
       
   242   char *end_line_marker() { return (char*)"\n#line 999999\n"; }
   237 
   243 
   238   // Return pointer to current character
   244   // Return pointer to current character
   239   inline char  cur_char(void);
   245   inline char  cur_char(void);
   240   // Advance to next character, assign this to _curchar
   246   // Advance to next character, assign this to _curchar
   241   inline void  next_char(void);
   247   inline void  next_char(void);
   266   int linenum() { return _buf.linenum(); }
   272   int linenum() { return _buf.linenum(); }
   267 
   273 
   268   static bool is_literal_constant(const char *hex_string);
   274   static bool is_literal_constant(const char *hex_string);
   269   static bool is_hex_digit(char digit);
   275   static bool is_hex_digit(char digit);
   270   static bool is_int_token(const char* token, int& intval);
   276   static bool is_int_token(const char* token, int& intval);
       
   277   static bool equivalent_expressions(const char* str1, const char* str2);
   271   static void trim(char* &token);  // trim leading & trailing spaces
   278   static void trim(char* &token);  // trim leading & trailing spaces
   272 };
   279 };