-ast *newAst (int , void * );
-void initAst ( );
-ast *newNode (long ,ast * ,ast * );
-ast *copyAst (ast * );
-value *sizeofOp (link * );
-value *evalStmnt (ast * );
-ast *createFunction(symbol *,ast * );
-ast *createBlock (symbol *,ast * );
-ast *createLabel (symbol *,ast * );
-ast *createCase (ast *,ast *,ast *);
-ast *createDefault (ast *,ast * );
-ast *optimizeCompare (ast * );
-ast *forLoopOptForm( ast * );
-ast *argAst ( ast * );
-ast *resolveSymbols (ast *) ;
-ast *decorateType (ast *) ;
-ast *createWhile (symbol *, symbol *, symbol *, ast *, ast *);
-ast *createIf (ast *, ast *, ast *);
-ast *createDo (symbol *,symbol *,symbol *,ast *,ast *);
-ast *createFor (symbol *,symbol *,symbol *,symbol *,ast *,ast *,ast *, ast *);
-void eval2icode (ast *);
-value *constExprValue (ast *,int);
-symbol *funcOfType (char *,link *,link *,int,int);
-ast *initAggregates ( symbol *,initList *, ast *);
-bool hasSEFcalls ( ast *);
-void addSymToBlock (symbol *, ast *) ;
+ast *newAst_VALUE (value * val);
+ast *newAst_OP (unsigned op);
+ast *newAst_LINK (sym_link * val);
+
+void initAst ();
+ast *newNode (long, ast *, ast *);
+ast *copyAst (ast *);
+ast *removeIncDecOps (ast *);
+ast *removePreIncDecOps (ast *);
+ast *removePostIncDecOps (ast *);
+value *sizeofOp (sym_link *);
+value *evalStmnt (ast *);
+ast *createFunction (symbol *, ast *);
+ast *createBlock (symbol *, ast *);
+ast *createLabel (symbol *, ast *);
+ast *createCase (ast *, ast *, ast *);
+ast *createDefault (ast *, ast *, ast *);
+ast *forLoopOptForm (ast *);
+ast *argAst (ast *);
+ast *resolveSymbols (ast *);
+ast *decorateType (ast *, RESULT_TYPE);
+ast *createWhile (symbol *, symbol *, symbol *, ast *, ast *);
+ast *createIf (ast *, ast *, ast *);
+ast *createDo (symbol *, symbol *, symbol *, ast *, ast *);
+ast *createFor (symbol *, symbol *, symbol *, symbol *, ast *, ast *, ast *, ast *);
+void eval2icode (ast *);
+value *constExprValue (ast *, int);
+bool constExprTree (ast *);
+int setAstLineno (ast *, int);
+symbol *funcOfType (char *, sym_link *, sym_link *, int, int);
+symbol * funcOfTypeVarg (char *, char * , int , char **);
+ast *initAggregates (symbol *, initList *, ast *);
+bool hasSEFcalls (ast *);
+void addSymToBlock (symbol *, ast *);
+void freeStringSymbol(symbol *);
+DEFSETFUNC(resetParmKey);
+int astErrors(ast *);
+RESULT_TYPE getResultTypeFromType (sym_link *);