1#ifndef CPROVER_PARSER_H
2#define CPROVER_PARSER_H
37 virtual bool read(
char &ch)
55 virtual bool peek(
char &ch)
57 if (!char_buffer.empty())
59 ch = char_buffer.front();
63 if (!
in->read(&ch, 1))
66 char_buffer.push_back(ch);
72 return char_buffer.empty() &&
in->eof();
75 void parse_error(
const std::string &message,
const std::string &before);
91 virtual bool read2(
char &ch)
93 if (!char_buffer.empty())
95 ch = char_buffer.front();
96 char_buffer.pop_front();
104 std::list<char> char_buffer;
109#define YY_INPUT(buf, result, max_size) \
112 for (result = 0; result < max_size;) \
115 if (!PARSER.read(ch)) \
124 buf[result++] = ch; \
void set_file(const irep_idt &file)
Definition location.h:31
void set_function(const irep_idt &function)
Definition location.h:56
void set_line(const irep_idt &line)
Definition location.h:36
virtual bool parse()
Definition parser.h:50
irep_idt filename
Definition parser.h:14
irep_idt function
Definition parser.h:14
std::istream * in
Definition parser.h:13
virtual bool peek(char &ch)
Definition parser.h:55
std::string last_line
Definition parser.h:17
parsert & operator=(const parsert &rhs)=delete
parsert()
Definition parser.h:29
virtual bool eof()
Definition parser.h:70
parsert(const parsert &obj)=delete
virtual bool read(char &ch)
Definition parser.h:37
void set_location(exprt &e)
Definition parser.h:77
void parse_error(const std::string &message, const std::string &before)
Definition parser.cpp:23
std::vector< exprt > stack
Definition parser.h:19
unsigned line_no
Definition parser.h:16
virtual void clear()
Definition parser.h:21
exprt & _newstack(parsert &parser, unsigned &x)
Definition parser.cpp:12