summaryrefslogtreecommitdiffstats
path: root/ast.h
Commit message (Collapse)AuthorAgeFilesLines
* ast_node: Remove empty destructor.Carl Worth2010-06-231-1/+0
| | | | This wasn't serving any purpose. So delete it.
* Convert ast_node use of simple_node to exec_list and exec_nodeIan Romanick2010-05-101-9/+10
|
* Store AST function call parameters in expressionsIan Romanick2010-05-101-1/+2
| | | | | | Previously the list of function call parameters was stored as a circular list in ast_expression::subexpressions[1]. They are now stored as a regular list in ast_expression::expressions.
* Begin converting structure definitions to IRIan Romanick2010-04-281-0/+5
|
* Generate correct IR for do-while loopsIan Romanick2010-04-071-0/+9
| | | | | | | | | Previously the same code was generated for a while loop and a do-while loop. This pulls the code that generates the conditional break into a separate method. This method is called either at the beginning or the end depending on the loop type. Reported-by: Kenneth Graunke <[email protected]>
* Process ast_iteration_statement into ir_loopIan Romanick2010-04-071-0/+2
| | | | | | | | This causes the following tests to pass: glslparsertest/shaders/dowhile.frag glslparsertest/shaders/while.frag glslparsertest/shaders/while1.frag glslparsertest/shaders/while2.frag
* Additional void parameter checksIan Romanick2010-04-021-0/+7
| | | | | If there is a void parameter it must not have a name, and it must be the only parameter.
* Require that function formal parameters have namesIan Romanick2010-04-021-0/+8
|
* Remove ast_node::typeIan Romanick2010-04-021-3/+0
| | | | | It isn't a type (is was enum specifying the kind of node), it was unused, and it was easily confused with actual type fields. Kill with fire.
* Set source locations on AST nodes so error messages print locations.Kenneth Graunke2010-03-311-4/+4
| | | | | | | I haven't verified that these are all correct, but it's still a lot better than not having anything. Signed-off-by: Kenneth Graunke <[email protected]>
* Add ast_function::hirIan Romanick2010-03-311-0/+26
| | | | | | | | | | | | | | | | | | ast_function::hir consists of bits pulled out of ast_function_definition::hir. In fact, the later uses the former to do a lot of its processing. Several class private data fields were added to ast_function to facilitate communicate between the two. This causes the following tests to pass: glslparsertest/shaders/CorrectModule.frag This causes the following tests to fail. These shaders were previously failing to compile, but they were all failing for the wrong reasons. glslparsertest/shaders/function9.frag glslparsertest/shaders/function10.frag
* Move type_specifier_to_glsl_type to ast_type_specifier::glsl_typeIan Romanick2010-03-311-0/+4
| | | | This make is easily accessible from other modules.
* Add parser support for texture rectangle typesIan Romanick2010-03-291-0/+2
|
* Implement ir_if (for if-statments) and conversion from ASTIan Romanick2010-03-291-0/+3
| | | | | | | | | | | | | The following tests now pass: glslparsertest/shaders/if1.frag glslparsertest/shaders/if2.frag The following tests that used to pass now fail. It appears that most of these fail because ast_nequal and ast_equal are not converted to HIR. shaders/glsl-unused-varying.frag shaders/glsl-fs-sqrt-branch.frag
* Add new abstract ir_rvalue class; rework accordingly.Kenneth Graunke2010-03-261-19/+19
| | | | Signed-off-by: Ian Romanick <[email protected]>
* Initial bits for converting AST return nodes to IR return instructionsIan Romanick2010-03-191-0/+3
|
* Add new constructors for ast_type_specifierIan Romanick2010-03-151-0/+16
| | | | | | Add a constructor that uses an ast_struct_specifier and one that uses a type name. This saves a (trivial) bit of code, but it also ensures some of the class invariants (i.e., type_name != NULL) are met.
* Ensure that ast_type always has type_name setIan Romanick2010-03-151-1/+1
| | | | | | For built-in types, type_name would be NULL. This ensures that type_name is set even for the built-in types. This simplifies code in a few places and centralizes the name setting code.
* Differentiate in ast_function_expression between constructors and func. callsIan Romanick2010-03-101-3/+22
|
* Tell emacs that C++ .h files are C++Ian Romanick2010-03-101-0/+1
|
* Make ast_function_expression subclass of ast_expressionIan Romanick2010-03-101-0/+17
|
* Simplified constructor for identifier expressionsIan Romanick2010-03-101-0/+9
|
* Move top-level AST to HIR conversion to _mesa_ast_to_hirIan Romanick2010-03-101-0/+3
|
* Conver IR structures to use exec_list instead of simple_nodeIan Romanick2010-03-081-8/+9
|
* Remove prototypes for *_to_hir functions that no longer existIan Romanick2010-03-081-30/+0
|
* Make AST->HIR conversion a method of ast_node, re-enableIan Romanick2010-03-011-0/+20
|
* Replace tacky wrapper macros with tacky in-line type-castsIan Romanick2010-02-251-12/+0
|
* Add ast_expression_bin subclass of ast_expressionIan Romanick2010-02-221-0/+10
| | | | | | The ast_expression_bin subclass is used for all binary expressions such as addition, subtraction, and comparisons. Several other subclasses are soon to follow.
* Initial commit. lolIan Romanick2010-02-221-0/+511