First checkin, AXE release 0.2
[AXE.git] / src / regex.cpp
1 /**************************************************************************
2 **  (c) Copyright 2001, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
6 **      FILE NAME      : regex.cpp
7 **      SYSTEM NAME    : Andromeda X-Windows Encapsulation
8 **      VERSION NUMBER : $Revision: 1.1 $
9 **
10 **  DESCRIPTION      :  regex class implementation.
11 **
12 **  EXPORTED OBJECTS : 
13 **  LOCAL    OBJECTS : 
14 **  MODULES  USED    :
15 ***************************************************************************
16 **  ADMINISTRATIVE INFORMATION *
17 ********************************
18 **      ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
19 **      CREATION DATE   : Feb 23, 2001
20 **      LAST UPDATE     : Feb 23, 2001
21 **      MODIFICATIONS   : 
22 **************************************************************************/
23
24 /*****************************
25    $Log: regex.cpp,v $
26    Revision 1.1  2002-07-25 08:01:27  arjen
27    First checkin, AXE release 0.2
28
29 *****************************/
30
31 static const char RCSID[] = "$Id: regex.cpp,v 1.1 2002-07-25 08:01:27 arjen Exp $";
32
33 #include <stdio.h>
34 #include <ctype.h>
35 #include "String.h"
36
37  //  Constructors and destructors for the regex class
38
39 regex::regex(const String &reg)
40 {
41    regcomp (&expression, reg.p->s, REG_EXTENDED);
42 }
43
44 regex::regex(const char *reg)
45 {
46    regcomp (&expression, reg, REG_EXTENDED);
47 }
48
49 regex::~regex()
50 {
51    regfree(&expression);
52 }
53
54
55 bool operator == (const String &s, const regex &r)
56 {
57    return regexec(&r.expression, s.p->s, 0, 0, 0) == 0;
58 }
59 bool operator == (const regex &r, const String &s)
60 {
61    return regexec(&r.expression, s.p->s, 0, 0, 0) == 0;
62 }