vrml97_grammar.h File Reference

VRML97 Spirit grammar and associated parsers. More...

#include <openvrml/browser.h>
#include <boost/spirit/include/classic.hpp>
#include <boost/spirit/include/classic_actor.hpp>
#include <boost/spirit/include/classic_dynamic.hpp>
#include <boost/spirit/include/phoenix1.hpp>
#include <boost/test/floating_point_comparison.hpp>
#include <stack>

Include dependency graph for vrml97_grammar.h:

This graph shows which files directly or indirectly include this file:


Classes

struct  openvrml::vrml97_space_parser
 A Spirit space parser appropriate for use with VRML97 and VRML-encoded X3D. More...
struct  openvrml::vrml97_skip_grammar
 A Spirit grammar appropriate for use as a skip parser for VRML97 and VRML-encoded X3D. More...
struct  openvrml::vrml97_skip_grammar::vrml97_skip_grammar::definition< ScannerT >
 vrml97_skip_grammar definition. More...
struct  openvrml::vrml97_parse_error_handler
 A Spirit error handler that emits error and warning messages to a std::ostream. More...
struct  openvrml::null_vrml97_parse_actions
 No-op semantic actions for vrml97_grammar. More...
struct  openvrml::vrml97_grammar< Actions, ErrorHandler >
 A Spirit grammar for parsing VRML97. More...
struct  openvrml::vrml97_grammar< Actions, ErrorHandler >::vrml97_grammar::definition< ScannerT >
 VRML97 grammar definition. More...

Namespaces

namespace  openvrml
 The OpenVRML Runtime Library.

Typedefs

typedef
boost::spirit::classic::assertion
< vrml_parse_error > 
openvrml::vrml_parse_assertion
typedef std::multimap
< std::string,
node_interface_set > 
openvrml::script_node_types_t
typedef std::pair
< node_type_decls::key_type,
node_type_decls::mapped_type > 
openvrml::node_type_decl
typedef std::map< std::string,
const
node_type_decls::value_type * > 
openvrml::defs_t

Enumerations

enum  openvrml::vrml_parse_error {
  openvrml::dot_expected,
  openvrml::lbrace_expected,
  openvrml::lbracket_expected,
  openvrml::id_expected,
  openvrml::to_expected,
  openvrml::is_expected,
  openvrml::interface_type_or_rbracket_expected,
  openvrml::field_type_expected,
  openvrml::bool_expected,
  openvrml::color_expected,
  openvrml::color_or_lbracket_expected,
  openvrml::color_or_rbracket_expected,
  openvrml::float_expected,
  openvrml::float_or_lbracket_expected,
  openvrml::float_or_rbracket_expected,
  openvrml::int32_expected,
  openvrml::int32_or_lbracket_expected,
  openvrml::int32_or_rbracket_expected,
  openvrml::rotation_expected,
  openvrml::rotation_or_lbracket_expected,
  openvrml::rotation_or_rbracket_expected,
  openvrml::string_expected,
  openvrml::string_or_lbracket_expected,
  openvrml::string_or_rbracket_expected,
  openvrml::vec2_expected,
  openvrml::vec2_or_lbracket_expected,
  openvrml::vec2_or_rbracket_expected,
  openvrml::vec3_expected,
  openvrml::vec3_or_lbracket_expected,
  openvrml::vec3_or_rbracket_expected,
  openvrml::node_expected,
  openvrml::node_or_lbracket_expected,
  openvrml::node_or_rbracket_expected,
  openvrml::interface_collision,
  openvrml::unknown_node_type_id,
  node_type_already_exists,
  unknown_node_name_id,
  unknown_node_interface_id,
  proto_interface_id_expected,
  incompatible_proto_interface,
  eventin_id_expected,
  eventout_id_expected,
  event_value_type_mismatch,
  field_or_prototype_or_route_or_rbrace_expected,
  script_interface_or_field_or_prototype_or_route_or_rbrace_expected,
  rotation_axis_not_normalized,
  vrml_parse_error_end,
  vrml_parse_error_max = INT_MAX
}
 Identifiers used to designate parse error conditions. More...

Functions

const char * openvrml::vrml97_parse_error_msg (const vrml_parse_error error)
 Get the error message associated with a vrml_parse_error.
const vrml_parse_assertion openvrml::expect_dot (dot_expected)
const vrml_parse_assertion openvrml::expect_lbrace (lbrace_expected)
const vrml_parse_assertion openvrml::expect_lbracket (lbracket_expected)
const vrml_parse_assertion openvrml::expect_id (id_expected)
const vrml_parse_assertion openvrml::expect_to (to_expected)
const vrml_parse_assertion openvrml::expect_is (is_expected)
const vrml_parse_assertion openvrml::expect_interface_type_or_rbracket (interface_type_or_rbracket_expected)
const vrml_parse_assertion openvrml::expect_field_type (field_type_expected)
const vrml_parse_assertion openvrml::expect_bool (bool_expected)
const vrml_parse_assertion openvrml::expect_color (color_expected)
const vrml_parse_assertion openvrml::expect_float (float_expected)
const vrml_parse_assertion openvrml::expect_int32 (int32_expected)
const vrml_parse_assertion openvrml::expect_rotation (rotation_expected)
const vrml_parse_assertion openvrml::expect_string (string_expected)
const vrml_parse_assertion openvrml::expect_vec2 (vec2_expected)
const vrml_parse_assertion openvrml::expect_vec3 (vec3_expected)
const vrml_parse_assertion openvrml::expect_node (node_expected)
const vrml_parse_assertion openvrml::expect_unique_node_interface (interface_collision)
const vrml_parse_assertion openvrml::expect_proto_interface_id (proto_interface_id_expected)
const vrml_parse_assertion openvrml::expect_compatible_proto_interface (incompatible_proto_interface)
const vrml_parse_assertion openvrml::expect_eventin_id (eventin_id_expected)
const vrml_parse_assertion openvrml::expect_eventout_id (eventout_id_expected)
const vrml_parse_assertion openvrml::expect_eventin_value_type_matches_eventout (event_value_type_mismatch)
const vrml_parse_assertion openvrml::expect_field_or_prototype_or_route_or_rbrace (field_or_prototype_or_route_or_rbrace_expected)
const vrml_parse_assertion openvrml::expect_script_interface_or_field_or_prototype_or_route_or_rbrace (script_interface_or_field_or_prototype_or_route_or_rbrace_expected)
const vrml_parse_assertion openvrml::expect_normalized_rotation (rotation_axis_not_normalized)
node_type_decls::value_type * openvrml::find_node_type (scope_stack_t &scope_stack, const std::string &node_type_id)
bool openvrml::in_proto_def (const scope_stack_t &scope_stack)
template<typename String , typename NodeType >
const add_def_t< String, NodeType > openvrml::add_def (scope_stack_t &scope_stack, String &node_name_id, NodeType &node_type)

Variables

const vrml97_space_parser openvrml::vrml97_space_p = vrml97_space_parser()
 A Spirit space parser appropriate for use with VRML97 and VRML-encoded X3D.
const
boost::spirit::classic::real_parser
< float,
boost::spirit::classic::real_parser_policies
< float > > 
openvrml::float_p
const
boost::spirit::classic::functor_parser
< bool_parser > 
openvrml::bool_p
const
boost::spirit::classic::functor_parser
< int32_parser > 
openvrml::int32_p
const
boost::spirit::classic::functor_parser
< intensity_parser > 
openvrml::intensity_p
const
boost::spirit::classic::functor_parser
< color_parser > 
openvrml::color_p
const
boost::spirit::classic::functor_parser
< vec2f_parser > 
openvrml::vec2f_p
const
boost::spirit::classic::functor_parser
< vec3f_parser > 
openvrml::vec3f_p
const
boost::spirit::classic::functor_parser
< image_parser > 
openvrml::image_p
const phoenix::function
< get_string_content_function > 
openvrml::get_string_content
const
boost::spirit::classic::functor_parser
< string_parser > 
openvrml::string_p
const phoenix::function
< set_node_interface_type_function > 
openvrml::set_node_interface_type
const phoenix::function
< set_node_interface_field_type_function > 
openvrml::set_node_interface_field_type
const phoenix::function
< set_node_interface_id_function > 
openvrml::set_node_interface_id
const phoenix::function
< set_node_type_id_function > 
openvrml::set_node_type_id
const phoenix::function
< add_node_interface_function > 
openvrml::add_node_interface
const phoenix::function
< check_function > 
openvrml::check
const phoenix::function
< check_valid_proto_interface_function > 
openvrml::check_valid_proto_interface
const phoenix::function
< get_route_eventout_function > 
openvrml::get_route_eventout
const phoenix::function
< get_route_eventin_function > 
openvrml::get_route_eventin
const phoenix::function
< check_consistent_value_type_function > 
openvrml::check_consistent_value_type
const phoenix::function
< is_script_node_function > 
openvrml::is_script_node

Detailed Description

VRML97 Spirit grammar and associated parsers.