mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-25 04:32:33 -06:00
49 lines
998 B
C++
49 lines
998 B
C++
// Filename: sedAddress.h
|
|
// Created by: drose (24Oct00)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef SEDADDRESS_H
|
|
#define SEDADDRESS_H
|
|
|
|
#include "ppremake.h"
|
|
|
|
#include <sys/types.h>
|
|
|
|
#ifdef HAVE_REGEX_H
|
|
#include <regex.h>
|
|
#else
|
|
#include "gnu_regex.h"
|
|
#endif
|
|
|
|
class SedContext;
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// Class : SedAddress
|
|
// Description : This represents a single address in a sed command,
|
|
// something like a line number or a regular expression.
|
|
////////////////////////////////////////////////////////////////////
|
|
class SedAddress {
|
|
public:
|
|
SedAddress();
|
|
~SedAddress();
|
|
|
|
bool parse_address(const string &line, size_t &p);
|
|
|
|
bool matches(const SedContext &context) const;
|
|
bool precedes(const SedContext &context) const;
|
|
|
|
private:
|
|
enum AddressType {
|
|
AT_invalid,
|
|
AT_numeric,
|
|
AT_last,
|
|
AT_re,
|
|
};
|
|
AddressType _address_type;
|
|
|
|
int _number;
|
|
regex_t _re;
|
|
};
|
|
|
|
#endif
|