/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped2223/*24* return p stat info25*/2627#include "reglib.h"2829regstat_t*30regstat(const regex_t* p)31{32register Rex_t* e;3334p->env->stats.re_flags = p->env->flags;35p->env->stats.re_info = 0;36e = p->env->rex;37if (e && e->type == REX_BM)38{39p->env->stats.re_record = p->env->rex->re.bm.size;40e = e->next;41}42else43p->env->stats.re_record = 0;44if (e && e->type == REX_BEG)45e = e->next;46if (e && e->type == REX_STRING)47e = e->next;48if (!e || e->type == REX_END && !e->next)49p->env->stats.re_info |= REG_LITERAL;50p->env->stats.re_record = (p && p->env && p->env->rex->type == REX_BM) ? p->env->rex->re.bm.size : -1;51return &p->env->stats;52}535455