parameter.h 898 B

12345678910111213141516171819202122232425
  1. #ifndef VIRTUALMATH_PARAMETER_H
  2. #define VIRTUALMATH_PARAMETER_H
  3. #include "__macro.h"
  4. typedef struct Parameter{
  5. enum {
  6. only_value,
  7. name_value,
  8. } type;
  9. struct {
  10. struct Statement *value;
  11. struct Statement *name; // 仅在name-value模式生效
  12. } data;
  13. struct Parameter *next;
  14. } Parameter;
  15. Parameter *makeParameter();
  16. Parameter *makeOnlyValueParameter(struct Statement *st);
  17. Parameter *makeNameValueParameter(Statement *value, Statement *name);
  18. Parameter *connectParameter(Parameter *new, Parameter *base);
  19. Parameter *connectOnlyValueParameter(struct Statement *st, Parameter *base);
  20. Parameter *connectNameValueParameter(Statement *value, Statement *name, Parameter *base);
  21. void freeParameter(Parameter *pt);
  22. Result setParameter(Parameter *call, Parameter *function, VarList *function_var, INTER_FUNCTIONSIG_CORE);
  23. #endif //VIRTUALMATH_PARAMETER_H