2 // Automated Testing Framework (atf)
4 // Copyright (c) 2007, 2008 The NetBSD Foundation, Inc.
5 // All rights reserved.
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions
10 // 1. Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 // 2. Redistributions in binary form must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in the
14 // documentation and/or other materials provided with the distribution.
16 // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
17 // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18 // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
23 // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25 // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #include "atf-c++/parser.hpp"
34 namespace impl
= atf::parser
;
35 #define IMPL_NAME "atf::parser"
37 // ------------------------------------------------------------------------
38 // The "parse_error" class.
39 // ------------------------------------------------------------------------
41 impl::parse_error::parse_error(size_t line
, std::string msg
) :
42 std::runtime_error(msg
),
43 std::pair
< size_t, std::string
>(line
, msg
)
47 impl::parse_error::~parse_error(void)
53 impl::parse_error::what(void)
57 std::ostringstream oss
;
58 oss
<< "LONELY PARSE ERROR: " << first
<< ": " << second
;
62 return "Could not format message for parsing error.";
66 // ------------------------------------------------------------------------
67 // The "parse_errors" class.
68 // ------------------------------------------------------------------------
70 impl::parse_errors::parse_errors(void) :
71 std::runtime_error("No parsing errors yet")
76 impl::parse_errors::~parse_errors(void)
82 impl::parse_errors::what(void)
86 std::ostringstream oss
;
87 for (const_iterator iter
= begin(); iter
!= end(); iter
++) {
88 oss
<< (*iter
).first
<< ": " << (*iter
).second
94 return "Could not format messages for parsing errors.";
98 // ------------------------------------------------------------------------
100 // ------------------------------------------------------------------------
102 impl::token::token(void) :
107 impl::token::token(size_t p_line
,
108 const token_type
& p_type
,
109 const std::string
& p_text
) :
118 impl::token::lineno(void)
124 const impl::token_type
&
125 impl::token::type(void)
132 impl::token::text(void)
138 impl::token::operator bool(void)
145 impl::token::operator!(void)