indent
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 22 Nov 2006 23:58:47 +0000 (23:58 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 22 Nov 2006 23:58:47 +0000 (23:58 +0000)
src/mesa/shader/slang/slang_compile_operation.h

index f5fee1e50e674e316c5683707fe928752868ff6a..65e33dc4a2073240cbfd65d511fa065ab0b7fc54 100644 (file)
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#if !defined SLANG_COMPILE_OPERATION_H
+#ifndef SLANG_COMPILE_OPERATION_H
 #define SLANG_COMPILE_OPERATION_H
 
 #if defined __cplusplus
 extern "C" {
 #endif
 
+
 /**
  * Types of slang operations.
  * These are the basic intermediate code representations.
  * [foo] indicates a sub-tree or reference to another type of node
  */
-typedef enum slang_operation_type_
+   typedef enum slang_operation_type_
 {
-       slang_oper_none,
-       slang_oper_block_no_new_scope,  /* "{" sequence "}" */
-       slang_oper_block_new_scope,     /* "{" sequence "}" */
-       slang_oper_variable_decl, /* [type] [var] or [var] = [expr] */
-       slang_oper_asm,
-       slang_oper_break,         /* "break" statement */
-       slang_oper_continue,      /* "continue" statement */
-       slang_oper_discard,       /* "discard" (kill fragment) statement */
-       slang_oper_return,        /* "return" [expr]  */
-       slang_oper_expression,    /* [expr] */
-       slang_oper_if,            /* "if" [0] then [1] else [2] */
-       slang_oper_while,         /* "while" [cond] [body] */
-       slang_oper_do,            /* "do" [body] "while" [cond] */
-       slang_oper_for,           /* "for" [init] [while] [incr] [body] */
-       slang_oper_void,          /* nop */
-       slang_oper_literal_bool,  /* "true" or "false" */
-       slang_oper_literal_int,   /* integer literal */
-       slang_oper_literal_float, /* float literal */
-       slang_oper_identifier,    /* var name, func name, etc */
-       slang_oper_sequence,      /* [expr] "," [expr] "," etc */
-       slang_oper_assign,        /* [var] "=" [expr] */
-       slang_oper_addassign,     /* [var] "+=" [expr] */
-       slang_oper_subassign,     /* [var] "-=" [expr] */
-       slang_oper_mulassign,     /* [var] "*=" [expr] */
-       slang_oper_divassign,     /* [var] "/=" [expr] */
-       /*slang_oper_modassign,*/
-       /*slang_oper_lshassign,*/
-       /*slang_oper_rshassign,*/
-       /*slang_oper_orassign,*/
-       /*slang_oper_xorassign,*/
-       /*slang_oper_andassign,*/
-       slang_oper_select,        /* [expr] "?" [expr] ":" [expr] */
-       slang_oper_logicalor,     /* [expr] "||" [expr] */
-       slang_oper_logicalxor,    /* [expr] "^^" [expr] */
-       slang_oper_logicaland,    /* [expr] "&&" [expr] */
-       /*slang_oper_bitor,*/
-       /*slang_oper_bitxor,*/
-       /*slang_oper_bitand,*/
-       slang_oper_equal,         /* [expr] "==" [expr] */
-       slang_oper_notequal,      /* [expr] "!=" [expr] */
-       slang_oper_less,          /* [expr] "<" [expr] */
-       slang_oper_greater,       /* [expr] ">" [expr] */
-       slang_oper_lessequal,     /* [expr] "<=" [expr] */
-       slang_oper_greaterequal,  /* [expr] ">=" [expr] */
-       /*slang_oper_lshift,*/
-       /*slang_oper_rshift,*/
-       slang_oper_add,           /* [expr] "+" [expr] */
-       slang_oper_subtract,      /* [expr] "-" [expr] */
-       slang_oper_multiply,      /* [expr] "*" [expr] */
-       slang_oper_divide,        /* [expr] "/" [expr] */
-       /*slang_oper_modulus,*/
-       slang_oper_preincrement,  /* "++" [var] */
-       slang_oper_predecrement,  /* "--" [var] */
-       slang_oper_plus,          /* "-" [expr] */
-       slang_oper_minus,         /* "+" [expr] */
-       /*slang_oper_complement,*/
-       slang_oper_not,           /* "!" [expr] */
-       slang_oper_subscript,     /* [expr] "[" [expr] "]" */
-       slang_oper_call,          /* [func name] [param] [param] [...] */
-       slang_oper_field,         /* i.e.: ".next" or ".xzy" or ".xxx" etc */
-       slang_oper_postincrement, /* [var] "++" */
-       slang_oper_postdecrement  /* [var] "--" */
+   slang_oper_none,
+   slang_oper_block_no_new_scope,       /* "{" sequence "}" */
+   slang_oper_block_new_scope,  /* "{" sequence "}" */
+   slang_oper_variable_decl,    /* [type] [var] or [var] = [expr] */
+   slang_oper_asm,
+   slang_oper_break,            /* "break" statement */
+   slang_oper_continue,         /* "continue" statement */
+   slang_oper_discard,          /* "discard" (kill fragment) statement */
+   slang_oper_return,           /* "return" [expr]  */
+   slang_oper_expression,       /* [expr] */
+   slang_oper_if,               /* "if" [0] then [1] else [2] */
+   slang_oper_while,            /* "while" [cond] [body] */
+   slang_oper_do,               /* "do" [body] "while" [cond] */
+   slang_oper_for,              /* "for" [init] [while] [incr] [body] */
+   slang_oper_void,             /* nop */
+   slang_oper_literal_bool,     /* "true" or "false" */
+   slang_oper_literal_int,      /* integer literal */
+   slang_oper_literal_float,    /* float literal */
+   slang_oper_identifier,       /* var name, func name, etc */
+   slang_oper_sequence,         /* [expr] "," [expr] "," etc */
+   slang_oper_assign,           /* [var] "=" [expr] */
+   slang_oper_addassign,        /* [var] "+=" [expr] */
+   slang_oper_subassign,        /* [var] "-=" [expr] */
+   slang_oper_mulassign,        /* [var] "*=" [expr] */
+   slang_oper_divassign,        /* [var] "/=" [expr] */
+   /*slang_oper_modassign, */
+   /*slang_oper_lshassign, */
+   /*slang_oper_rshassign, */
+   /*slang_oper_orassign, */
+   /*slang_oper_xorassign, */
+   /*slang_oper_andassign, */
+   slang_oper_select,           /* [expr] "?" [expr] ":" [expr] */
+   slang_oper_logicalor,        /* [expr] "||" [expr] */
+   slang_oper_logicalxor,       /* [expr] "^^" [expr] */
+   slang_oper_logicaland,       /* [expr] "&&" [expr] */
+   /*slang_oper_bitor, */
+   /*slang_oper_bitxor, */
+   /*slang_oper_bitand, */
+   slang_oper_equal,            /* [expr] "==" [expr] */
+   slang_oper_notequal,         /* [expr] "!=" [expr] */
+   slang_oper_less,             /* [expr] "<" [expr] */
+   slang_oper_greater,          /* [expr] ">" [expr] */
+   slang_oper_lessequal,        /* [expr] "<=" [expr] */
+   slang_oper_greaterequal,     /* [expr] ">=" [expr] */
+   /*slang_oper_lshift, */
+   /*slang_oper_rshift, */
+   slang_oper_add,              /* [expr] "+" [expr] */
+   slang_oper_subtract,         /* [expr] "-" [expr] */
+   slang_oper_multiply,         /* [expr] "*" [expr] */
+   slang_oper_divide,           /* [expr] "/" [expr] */
+   /*slang_oper_modulus, */
+   slang_oper_preincrement,     /* "++" [var] */
+   slang_oper_predecrement,     /* "--" [var] */
+   slang_oper_plus,             /* "-" [expr] */
+   slang_oper_minus,            /* "+" [expr] */
+   /*slang_oper_complement, */
+   slang_oper_not,              /* "!" [expr] */
+   slang_oper_subscript,        /* [expr] "[" [expr] "]" */
+   slang_oper_call,             /* [func name] [param] [param] [...] */
+   slang_oper_field,            /* i.e.: ".next" or ".xzy" or ".xxx" etc */
+   slang_oper_postincrement,    /* [var] "++" */
+   slang_oper_postdecrement     /* [var] "--" */
 } slang_operation_type;
 
 
 /**
  * A slang_operation is basically a compiled instruction (such as assignment,
- * a while-loop, a conditiona, a function call, etc).
+ * a while-loop, a conditional, a multiply, a function call, etc).
  */
 typedef struct slang_operation_
 {
-       slang_operation_type type;
-       struct slang_operation_ *children;
-       unsigned int num_children;
-       float literal;       /**< Used for float, int and bool values */
-       slang_atom a_id;     /**< type: asm, identifier, call, field */
-       slang_variable_scope *locals;  /**< local vars for scope */
+   slang_operation_type type;
+   struct slang_operation_ *children;
+   unsigned int num_children;
+   float literal;            /**< Used for float, int and bool values */
+   slang_atom a_id;          /**< type: asm, identifier, call, field */
+   slang_variable_scope *locals;       /**< local vars for scope */
 } slang_operation;
 
 
-extern int slang_operation_construct (slang_operation *);
-extern void slang_operation_destruct (slang_operation *);
-extern int slang_operation_copy (slang_operation *, const slang_operation *);
+extern int slang_operation_construct(slang_operation *);
+extern void slang_operation_destruct(slang_operation *);
+extern int slang_operation_copy(slang_operation *, const slang_operation *);
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
-
+#endif /* SLANG_COMPILE_OPERATION_H */