| 774 | } |
| 775 | |
| 776 | bool AR_EXP_ContainsFunc(const AR_ExpNode *root, const char *func) { |
| 777 | if(root == NULL) return false; |
| 778 | if(AR_EXP_IsOperation(root)) { |
| 779 | if(strcasecmp(AR_EXP_GetFuncName(root), func) == 0) return true; |
| 780 | for(int i = 0; i < root->op.child_count; i++) { |
| 781 | if(AR_EXP_ContainsFunc(root->op.children[i], func)) return true; |
| 782 | } |
| 783 | } |
| 784 | return false; |
| 785 | } |
| 786 | |
| 787 | bool AR_EXP_ContainsVariadic(const AR_ExpNode *root) { |
| 788 | if(root == NULL) return false; |
no test coverage detected