1 |
/* |
/* |
2 |
* Syntax Routines |
* Syntax Routines |
3 |
* by Tom Epperly |
* by Tom Epperly |
4 |
* Created: 3/22/1990 |
* Created: 3/22/1990 |
25 |
* with the program; if not, write to the Free Software Foundation, Inc., 675 |
* with the program; if not, write to the Free Software Foundation, Inc., 675 |
26 |
* Mass Ave, Cambridge, MA 02139 USA. Check the file named COPYING. |
* Mass Ave, Cambridge, MA 02139 USA. Check the file named COPYING. |
27 |
*/ |
*/ |
28 |
|
|
29 |
/** @file |
/** @file |
30 |
* Syntax Routines. |
* Syntax Routines. |
31 |
* These routines support the yacc parsing file ascParse.y. This module |
* These routines support the yacc parsing file ascParse.y. This module |
33 |
* <pre> |
* <pre> |
34 |
* When #including syntax.h, make sure these files are #included first: |
* When #including syntax.h, make sure these files are #included first: |
35 |
* #include "utilities/ascConfig.h" |
* #include "utilities/ascConfig.h" |
36 |
* #include "fractions.h" |
* #include "compiler/fractions.h" |
37 |
* #include "compiler.h" |
* #include "compiler/compiler.h" |
38 |
* #include "dimen.h" |
* #include "compiler/dimen.h" |
39 |
* #include "types.h" |
* #include "compiler/types.h" |
40 |
* #include "exprs.h" |
* #include "compiler/exprs.h" |
41 |
* #include "stattypes.h" |
* #include "compiler/stattypes.h" |
42 |
* </pre> |
* </pre> |
43 |
*/ |
*/ |
44 |
|
|
47 |
|
|
48 |
extern unsigned NumberOfRelOps(struct Expr *ex); |
extern unsigned NumberOfRelOps(struct Expr *ex); |
49 |
/**< |
/**< |
50 |
* <!-- unsigned NumberOfRelOps(ex) --> |
* Counts the number of relation operators in the given Expr. |
51 |
* <!-- struct Expr *ex; --> |
* |
52 |
* Return the number of relation operators in the given Expr. |
* @param ex The expresion to evaluate. |
53 |
|
* @return The number of relation operators in ex. |
54 |
*/ |
*/ |
55 |
|
|
56 |
extern int IsRelation(struct Expr *ex); |
extern int IsRelation(struct Expr *ex); |
57 |
/**< |
/**< |
58 |
* <!-- unsigned IsRelation(ex) --> |
* Tests whether an expression is a real or logical relation. |
59 |
* <!-- struct Expr *ex; --> |
* |
60 |
* Return 1 in case of a real relation. 0 if logical relation. |
* @param ex The expresion to test. |
61 |
|
* @return Returns 1 if ex is a real relation, 0 if a |
62 |
|
* logical relation. |
63 |
|
* @todo compiler/syntax:IsRelation() notated as broken in source file. |
64 |
|
* Fix or remove comment. |
65 |
*/ |
*/ |
66 |
|
|
67 |
extern int GetParseRelnsFlag(void); |
extern int GetParseRelnsFlag(void); |
68 |
/**< |
/**< |
69 |
* <!-- int GetParseRelnsFlag(void); --> |
* Retrieves the value of the parse relations flag. If this flag is |
70 |
* Returns the value of the parse relations flag. If this flag is set to |
* non-zero (the default), normal ASCEND relations will be parsed. |
71 |
* TRUE, which it is by default, normal ASCEND relations will be parsed; |
* If it is 0, they will not be. This flag does not affect |
72 |
* otherwise they will not be. This does not affect external relations. |
* external relations. |
73 |
|
* |
74 |
|
* @return The current value of the parse relations flag. |
75 |
*/ |
*/ |
76 |
|
|
77 |
extern void SetParseRelnsFlag(int flag); |
extern void SetParseRelnsFlag(int flag); |
78 |
/**< |
/**< |
79 |
* <!-- void SetParseRelnsFlag(flag); --> |
* Sets the parse relations flag. Any nonzero integer will |
80 |
* This function sets the parse relations flag. Any nonzero integer will |
* cause relations to be parsed (see GetParseRelnsFlag()). |
81 |
* turn the flag on. Later it may be given more meaning. |
* Later it may be given more meaning. |
82 |
|
* |
83 |
|
* @param flag The new value for the parse relations flag. |
84 |
*/ |
*/ |
85 |
|
|
86 |
#endif /* __SYNTAX_H_SEEN__ */ |
#endif /* __SYNTAX_H_SEEN__ */ |