summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSir Anthony <[email protected]>2014-02-05 21:18:09 +0600
committerKenneth Graunke <[email protected]>2014-03-08 01:29:00 -0800
commit433d562ac6b24b5e0ff63a682316be632dfc7053 (patch)
treef6224ee03952a8ad91a95c65ffc48fcfa3ddcf45
parent6984aa43504bd9b68692872cd711af3931607576 (diff)
glsl: Extend ast location structure to hande end token position.
Reviewed-by: Carl Worth <[email protected]>
-rw-r--r--src/glsl/ast.h22
-rw-r--r--src/glsl/glsl_parser_extras.cpp6
2 files changed, 17 insertions, 11 deletions
diff --git a/src/glsl/ast.h b/src/glsl/ast.h
index 1efb30679bb..8820993bdaa 100644
--- a/src/glsl/ast.h
+++ b/src/glsl/ast.h
@@ -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;
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index d7f5202fecd..61ae62150fe 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -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;
}