2016-01-23 11:51:29 +00:00
|
|
|
#ifndef EXPRESSION_SEMANTICS_H_
|
|
|
|
#define EXPRESSION_SEMANTICS_H_
|
2016-01-24 02:38:39 +00:00
|
|
|
|
2016-01-23 11:51:29 +00:00
|
|
|
#include "macrossTypes.h"
|
|
|
|
|
|
|
|
anyOldThing *arrayLookup(arrayTermType *arrayTerm, valueKindType *kindOfThing);
|
|
|
|
valueType *evaluateArrayTerm(arrayTermType *arrayTerm);
|
|
|
|
valueType *evaluateAssignmentTerm(binopTermType *assignmentTerm, fixupKindType kindOfFixup);
|
2016-01-24 02:38:39 +00:00
|
|
|
valueType *evaluateBinopTerm(binopTermType *binopTerm, bool isTopLevel, fixupKindType kindOfFixup);
|
2016-01-23 11:51:29 +00:00
|
|
|
valueType *evaluateCondition(conditionType condition);
|
|
|
|
valueType *evaluateBuiltInFunctionCall(symbolInContextType *workingContext, operandListType *parameters, fixupKindType kindOfFixup);
|
|
|
|
valueType *evaluateFunctionCall(functionCallTermType *functionCall, fixupKindType kindOfFixup, bool isStandalone);
|
2016-01-23 18:18:42 +00:00
|
|
|
valueType *evaluateHere(void);
|
2016-01-23 11:51:29 +00:00
|
|
|
valueType *evaluateIdentifier(symbolTableEntryType *identifier, bool isTopLevel, fixupKindType kindOfFixup);
|
|
|
|
valueType *evaluateNumber(numberTermType number);
|
|
|
|
valueType *evaluatePostopTerm(postOpTermType *postopTerm);
|
|
|
|
valueType *evaluatePreopTerm(preOpTermType *preopTerm);
|
|
|
|
valueType *evaluateString(stringType *string);
|
2016-01-24 02:38:39 +00:00
|
|
|
valueType *evaluateUnopTerm(unopTermType *unopTerm, fixupKindType kindOfFixup);
|
|
|
|
valueType *evaluateExpressionInternally(expressionType *expression, bool isTopLevel, fixupKindType kindOfFixup, bool isStandalone);
|
2016-01-23 11:51:29 +00:00
|
|
|
valueType *evaluateExpression(expressionType *expression, fixupKindType kindOfFixup);
|
|
|
|
void evaluateExpressionStandalone(expressionType *expression);
|
|
|
|
valueType *evaluateDefineExpression(expressionType *expression);
|
|
|
|
valueType *evaluateSelectionList(selectionListType *selectionList);
|
|
|
|
|
|
|
|
#endif
|