28#include <boost/phoenix.hpp>
29#include <boost/spirit/include/qi.hpp>
30#include <boost/spirit/include/support_line_pos_iterator.hpp>
32#include <ql/types.hpp>
43namespace qi = boost::spirit::qi;
44namespace phoenix = boost::phoenix;
60struct ScriptGrammar :
public qi::grammar<ScriptGrammarIterator, qi::space_type> {
abstract syntax tree for payoff scripting
boost::spirit::line_pos_iterator< std::string::const_iterator > ScriptGrammarIterator
Serializable Credit Default Swap.
ASTNodeAnnotation(std::stack< ASTNodePtr > &evalStack, const ScriptGrammarIterator first)
const ScriptGrammarIterator first_
void operator()(const ScriptGrammarIterator f, const ScriptGrammarIterator l) const
std::stack< ASTNodePtr > & evalStack_
qi::rule< ScriptGrammarIterator, qi::space_type > loop
qi::rule< ScriptGrammarIterator, qi::space_type > condition2
ScriptGrammarIterator errorBegin
qi::rule< ScriptGrammarIterator, qi::space_type > instructionseq
qi::rule< ScriptGrammarIterator, qi::space_type > require
std::stack< ASTNodePtr > evalStack
qi::rule< ScriptGrammarIterator, qi::space_type > ifthenelse
ASTNodeAnnotation annotate
qi::rule< ScriptGrammarIterator, qi::space_type > instruction
ScriptGrammarIterator errorEnd
qi::rule< ScriptGrammarIterator, qi::space_type > permute
qi::rule< ScriptGrammarIterator, qi::space_type > declaration
qi::rule< ScriptGrammarIterator, qi::space_type > assignment
qi::rule< ScriptGrammarIterator, std::string(), qi::space_type > keyword
qi::rule< ScriptGrammarIterator, qi::space_type > varexpr
qi::rule< ScriptGrammarIterator, qi::space_type > factor
qi::rule< ScriptGrammarIterator, qi::space_type > sort
qi::rule< ScriptGrammarIterator, qi::space_type > product
qi::rule< ScriptGrammarIterator, qi::space_type > term
qi::rule< ScriptGrammarIterator, qi::space_type > condition
qi::rule< ScriptGrammarIterator, qi::space_type > condition3
ScriptGrammarIterator errorPos
boost::spirit::info errorWhat
qi::rule< ScriptGrammarIterator, std::string(), qi::space_type > varname