1// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5// A simple interpreter for the Irregexp byte code.
6
7#ifndef RUNTIME_VM_REGEXP_INTERPRETER_H_
8#define RUNTIME_VM_REGEXP_INTERPRETER_H_
9
10#include "vm/allocation.h"
11#include "vm/object.h"
12#include "vm/zone.h"
13
14namespace dart {
15
16class IrregexpInterpreter : public AllStatic {
17 public:
18 enum IrregexpResult { RE_FAILURE = 0, RE_SUCCESS = 1, RE_EXCEPTION = -1 };
19
20 static IrregexpResult Match(const TypedData& bytecode,
21 const String& subject,
22 int32_t* captures,
23 intptr_t start_position,
24 Zone* zone);
25};
26
27} // namespace dart
28
29#endif // RUNTIME_VM_REGEXP_INTERPRETER_H_
30