glsl: Extend ast location structure to hande end token position.
authorSir Anthony <anthony@adsorbtion.org>
Wed, 5 Feb 2014 15:18:09 +0000 (21:18 +0600)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 8 Mar 2014 09:29:00 +0000 (01:29 -0800)
Reviewed-by: Carl Worth <cworth@cworth.org>
src/glsl/ast.h
src/glsl/glsl_parser_extras.cpp

index 1efb30679bb0ee0db651e30fb3b67a0eca2231c1..8820993bdaa24ed3baf5dbe373ebeb706f1046b5 100644 (file)
@@ -75,10 +75,10 @@ public:
       struct YYLTYPE locp;
 
       locp.source = this->location.source;
-      locp.first_line = this->location.line;
-      locp.first_column = this->location.column;
-      locp.last_line = locp.first_line;
-      locp.last_column = locp.first_column;
+      locp.first_line = this->location.first_line;
+      locp.first_column = this->location.first_column;
+      locp.last_line = this->location.last_line;
+      locp.last_column = this->location.last_column;
 
       return locp;
    }
@@ -91,17 +91,21 @@ public:
    void set_location(const struct YYLTYPE &locp)
    {
       this->location.source = locp.source;
-      this->location.line = locp.first_line;
-      this->location.column = locp.first_column;
+      this->location.first_line = locp.first_line;
+      this->location.first_column = locp.first_column;
+      this->location.last_line = locp.last_line;
+      this->location.last_column = locp.last_column;
    }
 
    /**
     * Source location of the AST node.
     */
    struct {
-      unsigned source;    /**< GLSL source number. */
-      unsigned line;      /**< Line number within the source string. */
-      unsigned column;    /**< Column in the line. */
+      unsigned source;          /**< GLSL source number. */
+      unsigned first_line;      /**< Line number within the source string. */
+      unsigned first_column;    /**< Column in the line. */
+      unsigned last_line;       /**< Line number within the source string. */
+      unsigned last_column;     /**< Column in the line. */
    } location;
 
    exec_node link;
index d7f5202fecd43e4ddb2cca5bb65646023b2801be..61ae62150fe3bf5b29a0470476f0c8ded41ba8c1 100644 (file)
@@ -807,8 +807,10 @@ ast_node::print(void) const
 ast_node::ast_node(void)
 {
    this->location.source = 0;
-   this->location.line = 0;
-   this->location.column = 0;
+   this->location.first_line = 0;
+   this->location.first_column = 0;
+   this->location.last_line = 0;
+   this->location.last_column = 0;
 }