aboutsummaryrefslogtreecommitdiff
path: root/src/experimental/regex.h
blob: 0b3711c845cbedd511c2dd69204a747a64b16352 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * Copyright (C) 2007-2019 Xagasoft, All rights reserved.
 *
 * This file is part of the libbu++ library and is released under the
 * terms of the license contained in the file LICENSE.
 */

#ifndef BU_REG_EX_H
#define BU_REG_EX_H

#include "bu/string.h"

#include <stdint.h>

namespace Bu
{
    class RegEx
    {
    public:
        RegEx();
        RegEx( const Bu::String &sSrc );
        virtual ~RegEx();

        void compile( const Bu::String &sSrc );
        int getNumSubStrings();
        bool execute( const Bu::String &sSrc );
        void getSubStringRange( int nIndex, int &iStart, int &iEnd );
        Bu::String getSubString( int nIndex );
        const Bu::String &getSource()
        {
            return sSrc;
        }

    private:
        Bu::String sSrc;
        Bu::String sTest;
        void *pRegEx;
        bool bCompiled;
        int nSubStr;
        void *paSubStr;
    };
};

#endif