src/share/vm/adlc/adlparse.hpp

changeset 910
284d0af00d53
parent 850
4d9884b01ba6
child 923
569b3b226089
     1.1 --- a/src/share/vm/adlc/adlparse.hpp	Mon Dec 08 17:15:02 2008 -0800
     1.2 +++ b/src/share/vm/adlc/adlparse.hpp	Tue Dec 09 12:41:26 2008 -0800
     1.3 @@ -93,6 +93,7 @@
     1.4    void pipe_parse(void);        // Parse pipeline section
     1.5    void definitions_parse(void); // Parse definitions section
     1.6    void peep_parse(void);        // Parse peephole rule definitions
     1.7 +  void preproc_line(void);      // Parse a #line statement
     1.8    void preproc_define(void);    // Parse a #define statement
     1.9    void preproc_undef(void);     // Parse an #undef statement
    1.10  
    1.11 @@ -226,7 +227,7 @@
    1.12    void  get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs
    1.13    // Return the contents of a parenthesized expression.
    1.14    // Requires initial '(' and consumes final ')', which is replaced by '\0'.
    1.15 -  char *get_paren_expr(const char *description);
    1.16 +  char *get_paren_expr(const char *description, bool include_location = false);
    1.17    // Return expression up to next stop-char, which terminator replaces.
    1.18    // Does not require initial '('.  Does not consume final stop-char.
    1.19    // Final stop-char is left in _curchar, but is also is replaced by '\0'.
    1.20 @@ -234,6 +235,11 @@
    1.21    char *find_cpp_block(const char *description); // Parse a C++ code block
    1.22    // Issue parser error message & go to EOL
    1.23    void parse_err(int flag, const char *fmt, ...);
    1.24 +  // Create a location marker for this file and line.
    1.25 +  char *get_line_string(int linenum = 0);
    1.26 +  // Return a location marker which tells the C preprocessor to
    1.27 +  // forget the previous location marker.  (Requires awk postprocessing.)
    1.28 +  char *end_line_marker() { return (char*)"\n#line 999999\n"; }
    1.29  
    1.30    // Return pointer to current character
    1.31    inline char  cur_char(void);
    1.32 @@ -268,5 +274,6 @@
    1.33    static bool is_literal_constant(const char *hex_string);
    1.34    static bool is_hex_digit(char digit);
    1.35    static bool is_int_token(const char* token, int& intval);
    1.36 +  static bool equivalent_expressions(const char* str1, const char* str2);
    1.37    static void trim(char* &token);  // trim leading & trailing spaces
    1.38  };

mercurial