//
// aegis - project change supervisor
// Copyright (C) 2008, 2012 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program. If not, see .
//
#include
#include
#include
meta_context_introspector::~meta_context_introspector()
{
}
meta_context_introspector::meta_context_introspector()
{
}
void
meta_context_introspector::parse_file(const nstring &filename,
const introspector::pointer &ip)
{
stack.push_back(ip);
sem_parse_file(*this, filename);
assert(stack.empty());
stack.clear();
}
void
meta_context_introspector::integer(long n)
{
assert(!stack.empty());
stack.back()->integer(n);
}
void
meta_context_introspector::real(double n)
{
assert(!stack.empty());
stack.back()->real(n);
}
void
meta_context_introspector::string(const nstring &s)
{
assert(!stack.empty());
stack.back()->string(s);
}
void
meta_context_introspector::enumeration(const nstring &name)
{
assert(!stack.empty());
stack.back()->enumeration(name);
}
void
meta_context_introspector::list()
{
assert(!stack.empty());
stack.push_back(stack.back()->list());
}
void
meta_context_introspector::list_end()
{
assert(!stack.empty());
stack.pop_back();
}
void
meta_context_introspector::field(const nstring &name)
{
assert(!stack.empty());
stack.push_back(stack.back()->field(name));
}
void
meta_context_introspector::field_end()
{
assert(!stack.empty());
stack.pop_back();
}
void
meta_context_introspector::end()
{
assert(!stack.empty());
stack.pop_back();
}
// vim: set ts=8 sw=4 et :