Quellcodebibliothek util_expr_private.h
Sprache: C
/* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/
#ifdef _MSC_VER /* Avoid some warnings with Visual Studio (likely due to a bug in bison) */ #define YYMALLOC malloc #define YYFREE free #endif
#ifndef YYDEBUG #define YYDEBUG 0 #endif
/** The operations in a parse tree node */ typedefenum {
op_NOP,
op_True, op_False,
op_Not, op_Or, op_And,
op_Comp,
op_EQ, op_NE, op_LT, op_LE, op_GT, op_GE, op_IN,
op_REG, op_NRE,
op_STR_EQ, op_STR_NE, op_STR_LT, op_STR_LE, op_STR_GT, op_STR_GE,
op_Concat,
op_Digit, op_String, op_Regex, op_RegexBackref,
op_Var,
op_ListElement, /* * call external functions/operators. * The info node contains the function pointer and some function specific * info. * For Binary operators, the Call node links to the Info node and the * Args node, which in turn links to the left and right operand. * For all other variants, the Call node links to the Info node and the * argument.
*/
op_UnaryOpCall, op_UnaryOpInfo,
op_BinaryOpCall, op_BinaryOpInfo, op_BinaryOpArgs,
op_StringFuncCall, op_StringFuncInfo,
op_ListFuncCall, op_ListFuncInfo
} ap_expr_node_op_e;
/** The basic parse tree node */ struct ap_expr_node {
ap_expr_node_op_e node_op; constvoid *node_arg1; constvoid *node_arg2;
};
/** The context used by scanner and parser */ typedefstruct { /* internal state of the scanner */ constchar *inputbuf; int inputlen; constchar *inputptr; void *scanner; char *scan_ptr; char scan_buf[MAX_STRING_LEN]; char scan_del; int at_start;
/* pools for result and temporary usage */
apr_pool_t *pool;
apr_pool_t *ptemp;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.