Spicy
spicy
toolchain
include
compiler
detail
parser
scanner.h
1
// Copyright (c) 2020-2021 by the Zeek Project. See LICENSE for details.
2
//
3
// This borrows from https://idlebox.net/2007/flex-bison-cpp-example.
4
5
#pragma once
6
7
#include <string>
8
9
#include <spicy/compiler/detail/parser/driver.h>
10
12
#include <__parser.h>
13
14
namespace
spicy::detail::parser
{
15
17
class
Scanner
:
public
SpicyFlexLexer {
18
public
:
19
Scanner
(std::istream* yyin =
nullptr
, std::ostream* yyout =
nullptr
) : SpicyFlexLexer(yyin, yyout) {}
20
21
spicy::detail::parser::Parser::token_type lex(spicy::detail::parser::Parser::semantic_type* yylval,
22
spicy::detail::parser::location* yylloc,
23
spicy::detail::parser::Driver
* driver);
24
25
void
enablePatternMode();
26
void
disablePatternMode();
27
void
enableExpressionMode();
28
void
disableExpressionMode();
29
void
enableDottedIDMode();
30
void
disableDottedIDMode();
31
void
enableHookIDMode();
32
void
disableHookIDMode();
33
void
setIgnoreMode(
bool
enable);
34
};
35
36
}
// namespace spicy::detail::parser
spicy::detail::parser
Definition:
driver.h:114
spicy::detail::parser::Driver
Definition:
driver.h:120
spicy::detail::parser::Scanner
Definition:
scanner.h:17
Generated by
1.8.13