We handle variable replacements elsewhere.
The markup parser needs to ignore them so they get rendered when we're not doing replacement.
This commit is contained in:
parent
ab5489ad30
commit
d9507dbaf4
|
@ -50,8 +50,6 @@ std::string NODE::typeString() const
|
||||||
else if( is_type<MARKUP::overbar>() ) os << "OVERBAR";
|
else if( is_type<MARKUP::overbar>() ) os << "OVERBAR";
|
||||||
else if( is_type<MARKUP::anyString>() ) os << "ANYSTRING";
|
else if( is_type<MARKUP::anyString>() ) os << "ANYSTRING";
|
||||||
else if( is_type<MARKUP::anyStringWithinBraces>() ) os << "ANYSTRINGWITHINBRACES";
|
else if( is_type<MARKUP::anyStringWithinBraces>() ) os << "ANYSTRINGWITHINBRACES";
|
||||||
else if( is_type<MARKUP::varNamespaceName>() ) os << "VARNAMESPACENAME";
|
|
||||||
else if( is_type<MARKUP::varName>() ) os << "VARNAME";
|
|
||||||
else os << "other";
|
else os << "other";
|
||||||
|
|
||||||
return os.str();
|
return os.str();
|
||||||
|
|
|
@ -47,19 +47,10 @@ struct NODE : parse_tree::basic_node<NODE>
|
||||||
bool isSuperscript() const { return is_type<MARKUP::superscript>(); }
|
bool isSuperscript() const { return is_type<MARKUP::superscript>(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct varName : plus<sor<identifier_other, string<' '>>> {};
|
|
||||||
|
|
||||||
struct varNamespaceName : plus<identifier> {};
|
|
||||||
|
|
||||||
struct varNamespace : seq<varNamespaceName, string<':'>> {};
|
|
||||||
|
|
||||||
struct variable : seq< string< '$', '{' >, opt<varNamespace>, varName, string< '}' > > {};
|
|
||||||
|
|
||||||
template< typename ControlChar >
|
template< typename ControlChar >
|
||||||
struct plain : seq< not_at< seq< ControlChar, string< '{' > > >, ControlChar > {};
|
struct plain : seq< not_at< seq< ControlChar, string< '{' > > >, ControlChar > {};
|
||||||
|
|
||||||
struct plainControlChar : sor< plain< string<'$'> >,
|
struct plainControlChar : sor< plain< string<'_'> >,
|
||||||
plain< string<'_'> >,
|
|
||||||
plain< string<'^'> >,
|
plain< string<'^'> >,
|
||||||
plain< string<'~'> > > {};
|
plain< string<'~'> > > {};
|
||||||
/**
|
/**
|
||||||
|
@ -67,16 +58,15 @@ struct plainControlChar : sor< plain< string<'$'> >,
|
||||||
* a run of characters that do not start a command sequence, or if they do, they do not start
|
* a run of characters that do not start a command sequence, or if they do, they do not start
|
||||||
* a complete command prefix (command char + open brace)
|
* a complete command prefix (command char + open brace)
|
||||||
*/
|
*/
|
||||||
struct anyString : plus< sor< utf8::not_one< '~', '$', '_', '^' >,
|
struct anyString : plus< sor< utf8::not_one< '~', '_', '^' >,
|
||||||
plainControlChar > > {};
|
plainControlChar > > {};
|
||||||
|
|
||||||
struct anyStringWithinBraces : plus< sor< utf8::not_one< '~', '$', '_', '^', '}' >,
|
struct anyStringWithinBraces : plus< sor< utf8::not_one< '~', '_', '^', '}' >,
|
||||||
plainControlChar > > {};
|
plainControlChar > > {};
|
||||||
|
|
||||||
template< typename ControlChar >
|
template< typename ControlChar >
|
||||||
struct braces : seq< seq< ControlChar, string< '{' > >,
|
struct braces : seq< seq< ControlChar, string< '{' > >,
|
||||||
until< string< '}' >, sor< anyStringWithinBraces,
|
until< string< '}' >, sor< anyStringWithinBraces,
|
||||||
variable,
|
|
||||||
subscript,
|
subscript,
|
||||||
superscript,
|
superscript,
|
||||||
overbar > > > {};
|
overbar > > > {};
|
||||||
|
@ -89,7 +79,6 @@ struct overbar : braces< string< '~' > > {};
|
||||||
* Finally, the full grammar
|
* Finally, the full grammar
|
||||||
*/
|
*/
|
||||||
struct anything : sor< anyString,
|
struct anything : sor< anyString,
|
||||||
variable,
|
|
||||||
subscript,
|
subscript,
|
||||||
superscript,
|
superscript,
|
||||||
overbar > {};
|
overbar > {};
|
||||||
|
@ -98,9 +87,7 @@ struct grammar : until< tao::pegtl::eof, anything > {};
|
||||||
|
|
||||||
template <typename Rule>
|
template <typename Rule>
|
||||||
using selector = parse_tree::selector< Rule,
|
using selector = parse_tree::selector< Rule,
|
||||||
parse_tree::store_content::on< varNamespaceName,
|
parse_tree::store_content::on< anyStringWithinBraces,
|
||||||
varName,
|
|
||||||
anyStringWithinBraces,
|
|
||||||
anyString >,
|
anyString >,
|
||||||
parse_tree::discard_empty::on< superscript,
|
parse_tree::discard_empty::on< superscript,
|
||||||
subscript,
|
subscript,
|
||||||
|
|
Loading…
Reference in New Issue