tamer: xir::st: Prefix all preproc-namespaced constants with `QN_P_`

I had previously avoided this to keep names more concise, but now it's
ambiguous with parsing actual TAME sources.

DEV-7145
main
Mike Gerwitz 2022-08-15 13:00:10 -04:00
parent 9f98cbf9b4
commit 65b42022f0
5 changed files with 71 additions and 71 deletions

View File

@ -140,7 +140,7 @@ impl<'a> DepListIter<'a> {
self.toks.push(Token::AttrName(QN_SRC, LSPAN));
}
self.toks_push_attr(QN_GENERATED, match src.generated {
self.toks_push_attr(QN_P_GENERATED, match src.generated {
true => Some(raw::L_TRUE),
false => None,
});

View File

@ -253,7 +253,7 @@ fn test_writes_deps() -> TestResult {
Some(ident.kind().unwrap().as_sym())
);
let generated = attrs.find(QN_GENERATED).map(|a| a.value());
let generated = attrs.find(QN_P_GENERATED).map(|a| a.value());
if let Some(Source {
generated: true, ..

View File

@ -205,7 +205,7 @@ impl<SS: XmloState, SD: XmloState, SF: XmloState> ParseState
QN_NAME => XmloToken::PkgName(value, aspan.1),
QN_UUROOTPATH => XmloToken::PkgRootPath(value, aspan.1),
QN_PROGRAM => XmloToken::PkgProgramFlag(aspan.0), // yes 0
QN_ELIG_CLASS_YIELDS => {
QN_P_ELIG_CLASS_YIELDS => {
XmloToken::PkgEligClassYields(value, aspan.1)
}
// Ignore unknown attributes for now to maintain BC,
@ -218,12 +218,12 @@ impl<SS: XmloState, SD: XmloState, SF: XmloState> ParseState
// XIRF guarantees a matching closing tag.
(Package(_), Xirf::Close(..)) => Transition(Done).incomplete(),
(Package(_), Xirf::Open(QN_SYMTABLE, span, ..)) => {
(Package(_), Xirf::Open(QN_P_SYMTABLE, span, ..)) => {
Transition(Symtable(span.tag_span(), SS::default()))
.incomplete()
}
(Symtable(_, ss), Xirf::Close(Some(QN_SYMTABLE), ..))
(Symtable(_, ss), Xirf::Close(Some(QN_P_SYMTABLE), ..))
if ss.is_accepting(ctx) =>
{
Transition(SymDepsExpected).incomplete()
@ -238,11 +238,11 @@ impl<SS: XmloState, SD: XmloState, SF: XmloState> ParseState
|| unreachable!(), // TODO: currently caught by preceding match
),
(SymDepsExpected, Xirf::Open(QN_SYM_DEPS, span, _)) => {
(SymDepsExpected, Xirf::Open(QN_P_SYM_DEPS, span, _)) => {
Transition(SymDeps(span.tag_span(), SD::default())).incomplete()
}
(SymDeps(_, sd), Xirf::Close(None | Some(QN_SYM_DEPS), ..))
(SymDeps(_, sd), Xirf::Close(None | Some(QN_P_SYM_DEPS), ..))
if sd.is_accepting(ctx) =>
{
Transition(FragmentsExpected).incomplete()
@ -255,14 +255,14 @@ impl<SS: XmloState, SD: XmloState, SF: XmloState> ParseState
|| unreachable!(), // TODO: currently caught by preceding match
),
(FragmentsExpected, Xirf::Open(QN_FRAGMENTS, span, _)) => {
(FragmentsExpected, Xirf::Open(QN_P_FRAGMENTS, span, _)) => {
Transition(Fragments(span.tag_span(), SF::default()))
.incomplete()
}
(
Fragments(_, sf),
Xirf::Close(None | Some(QN_FRAGMENTS), span, _),
Xirf::Close(None | Some(QN_P_FRAGMENTS), span, _),
) if sf.is_accepting(ctx) => {
Transition(Eoh).ok(XmloToken::Eoh(span.tag_span()))
}
@ -348,7 +348,7 @@ impl ParseState for SymtableState {
match (self, tok) {
(Ready, Xirf::Attr(..)) => Transition(Ready).incomplete(),
(Ready, Xirf::Open(QN_SYM, span, _)) => {
(Ready, Xirf::Open(QN_P_SYM, span, _)) => {
Transition(Sym(span.tag_span(), None, SymAttrs::default()))
.incomplete()
}
@ -379,7 +379,7 @@ impl ParseState for SymtableState {
// attribute now so we can simplify parsing here.
(
Sym(span_sym, Some(name), attrs),
Xirf::Open(QN_FROM, span_from, _),
Xirf::Open(QN_P_FROM, span_from, _),
) if attrs.ty == Some(SymType::Map)
|| attrs.ty == Some(SymType::RetMap) =>
{
@ -417,7 +417,7 @@ impl ParseState for SymtableState {
// The old XmloReader ignored these.
(
Sym(span_sym, Some(name), attrs),
Xirf::Open(QN_SYM_REF, span_ref, _),
Xirf::Open(QN_P_SYM_REF, span_ref, _),
) => Transition(SymRef(span_sym, name, attrs, span_ref.tag_span()))
.incomplete(),
@ -496,7 +496,7 @@ impl SymtableState {
QN_ISOVERRIDE => {
attrs.override_ = value == L_TRUE;
}
QN_GENERATED => {
QN_P_GENERATED => {
attrs.generated = value == L_TRUE;
}
@ -634,7 +634,7 @@ impl ParseState for SymDepsState {
match (self, tok) {
(Ready, Xirf::Attr(..)) => Transition(Ready).incomplete(),
(Ready, Xirf::Open(QN_SYM_DEP, span, _)) => {
(Ready, Xirf::Open(QN_P_SYM_DEP, span, _)) => {
Transition(SymUnnamed(span.tag_span())).incomplete()
}
@ -646,7 +646,7 @@ impl ParseState for SymDepsState {
(SymUnnamed(span), _) => Transition(SymUnnamed(span))
.err(XmloError::UnassociatedSymDep(span)),
(Sym(span, name), Xirf::Open(QN_SYM_REF, span_ref, _)) => {
(Sym(span, name), Xirf::Open(QN_P_SYM_REF, span_ref, _)) => {
Transition(SymRefUnnamed(span, name, span_ref.tag_span()))
.incomplete()
}
@ -745,7 +745,7 @@ impl ParseState for FragmentsState {
match (self, tok) {
(Ready, Xirf::Attr(..)) => Transition(Ready).incomplete(),
(Ready, Xirf::Open(QN_FRAGMENT, span, _)) => {
(Ready, Xirf::Open(QN_P_FRAGMENT, span, _)) => {
Transition(FragmentUnnamed(span.tag_span())).incomplete()
}

View File

@ -136,9 +136,9 @@ fn ignores_unknown_package_attr() {
#[test]
fn symtable_err_missing_sym_name() {
let toks = [
open(QN_SYM, S1, Depth(0)),
open(QN_P_SYM, S1, Depth(0)),
// No attributes, but importantly, no name.
close(Some(QN_SYMTABLE), S2, Depth(0)),
close(Some(QN_P_SYMTABLE), S2, Depth(0)),
]
.into_iter();
@ -165,7 +165,7 @@ macro_rules! symtable_tests {
let name = stringify!($name).intern();
let toks = [
open(QN_SYM, SSYM, Depth(0)),
open(QN_P_SYM, SSYM, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
$(
Xirf::Attr(Attr(
@ -174,7 +174,7 @@ macro_rules! symtable_tests {
AttrSpan(S3, SATTRVAL)
)),
)*
close(Some(QN_SYM), S2, Depth(0)),
close(Some(QN_P_SYM), S2, Depth(0)),
]
.into_iter();
@ -324,14 +324,14 @@ fn symtable_sym_generated_true() {
let name = "generated_true".into();
let toks = [
open(QN_SYM, SSYM, Depth(0)),
open(QN_P_SYM, SSYM, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
Xirf::Attr(Attr(
("preproc", "generated").unwrap_into(),
raw::L_TRUE,
AttrSpan(S3, S4),
)),
close(Some(QN_SYM), S2, Depth(0)),
close(Some(QN_P_SYM), S2, Depth(0)),
]
.into_iter();
@ -359,15 +359,15 @@ fn symtable_map_from() {
let map_from = "from-a".into();
let toks = [
open(QN_SYM, SSYM, Depth(0)),
open(QN_P_SYM, SSYM, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
Xirf::Attr(Attr(QN_TYPE, raw::L_MAP, AttrSpan(S3, S4))),
// <preproc:from>
open(QN_FROM, S2, Depth(1)),
open(QN_P_FROM, S2, Depth(1)),
Xirf::Attr(Attr(QN_NAME, map_from, AttrSpan(S2, S3))),
close_empty(S4, Depth(1)),
// />
close(Some(QN_SYM), S2, Depth(0)),
close(Some(QN_P_SYM), S2, Depth(0)),
]
.into_iter();
@ -396,15 +396,15 @@ fn symtable_map_from_missing_name() {
let name = "sym-map-from-missing".into();
let toks = [
open(QN_SYM, SSYM, Depth(0)),
open(QN_P_SYM, SSYM, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
Xirf::Attr(Attr(QN_TYPE, raw::L_MAP, AttrSpan(S3, S4))),
// <preproc:from>
open(QN_FROM, S2, Depth(1)),
open(QN_P_FROM, S2, Depth(1)),
// @name missing
close_empty(S4, Depth(1)),
// />
close(Some(QN_SYM), S2, Depth(0)),
close(Some(QN_P_SYM), S2, Depth(0)),
]
.into_iter();
@ -421,20 +421,20 @@ fn symtable_map_from_multiple() {
let name = "sym-map-from-missing".into();
let toks = [
open(QN_SYM, SSYM, Depth(0)),
open(QN_P_SYM, SSYM, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
Xirf::Attr(Attr(QN_TYPE, raw::L_MAP, AttrSpan(S3, S4))),
// <preproc:from>
open(QN_FROM, S2, Depth(1)),
open(QN_P_FROM, S2, Depth(1)),
Xirf::Attr(Attr(QN_NAME, "ok".into(), AttrSpan(S2, S3))),
close_empty(S4, Depth(1)),
// />
// <preproc:from> again (err)
open(QN_FROM, S3, Depth(1)),
open(QN_P_FROM, S3, Depth(1)),
Xirf::Attr(Attr(QN_NAME, "bad".into(), AttrSpan(S2, S3))),
close_empty(S4, Depth(1)),
// />
close(Some(QN_SYM), S2, Depth(0)),
close(Some(QN_P_SYM), S2, Depth(0)),
]
.into_iter();
@ -452,19 +452,19 @@ fn sym_dep_event() {
let dep2 = "dep2".into();
let toks = [
open(QN_SYM_DEP, S1, Depth(0)),
open(QN_P_SYM_DEP, S1, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
// <preproc:sym-ref
open(QN_SYM_REF, S2, Depth(1)),
open(QN_P_SYM_REF, S2, Depth(1)),
Xirf::Attr(Attr(QN_NAME, dep1, AttrSpan(S3, S4))),
close_empty(S4, Depth(1)),
// />
// <preproc:sym-ref
open(QN_SYM_REF, S3, Depth(1)),
open(QN_P_SYM_REF, S3, Depth(1)),
Xirf::Attr(Attr(QN_NAME, dep2, AttrSpan(S4, S5))),
close_empty(S4, Depth(1)),
// />
close(Some(QN_SYM_DEP), S5, Depth(0)),
close(Some(QN_P_SYM_DEP), S5, Depth(0)),
]
.into_iter();
@ -487,9 +487,9 @@ fn sym_dep_event() {
#[test]
fn sym_dep_missing_name() {
let toks = [
open(QN_SYM_DEP, S1, Depth(0)),
open(QN_P_SYM_DEP, S1, Depth(0)),
// missing @name, causes error
open(QN_SYM_REF, S2, Depth(1)),
open(QN_P_SYM_REF, S2, Depth(1)),
]
.into_iter();
@ -505,9 +505,9 @@ fn sym_ref_missing_name() {
let name = "depsym".into();
let toks = [
open(QN_SYM_DEP, S1, Depth(0)),
open(QN_P_SYM_DEP, S1, Depth(0)),
Xirf::Attr(Attr(QN_NAME, name, AttrSpan(S2, S3))),
open(QN_SYM_REF, S2, Depth(1)),
open(QN_P_SYM_REF, S2, Depth(1)),
// missing @name, causes error
close_empty(S3, Depth(1)),
]
@ -529,15 +529,15 @@ fn sym_fragment_event() {
let toks = [
// first
open(QN_FRAGMENT, S1, Depth(0)),
open(QN_P_FRAGMENT, S1, Depth(0)),
Xirf::Attr(Attr(QN_ID, id1, AttrSpan(S2, S3))),
Xirf::Text(Text(frag1, S4), Depth(1)),
close(Some(QN_FRAGMENT), S5, Depth(0)),
close(Some(QN_P_FRAGMENT), S5, Depth(0)),
// second
open(QN_FRAGMENT, S2, Depth(0)),
open(QN_P_FRAGMENT, S2, Depth(0)),
Xirf::Attr(Attr(QN_ID, id2, AttrSpan(S3, S4))),
Xirf::Text(Text(frag2, S5), Depth(1)),
close(Some(QN_FRAGMENT), S5, Depth(0)),
close(Some(QN_P_FRAGMENT), S5, Depth(0)),
]
.into_iter();
@ -559,7 +559,7 @@ fn sym_fragment_event() {
#[test]
fn sym_fragment_missing_id() {
let toks = [
open(QN_FRAGMENT, S1, Depth(0)),
open(QN_P_FRAGMENT, S1, Depth(0)),
// missing @id
Xirf::Text(Text("text".into(), S4), Depth(1)),
]
@ -576,7 +576,7 @@ fn sym_fragment_missing_id() {
#[test]
fn sym_fragment_empty_id() {
let toks = [
open(QN_FRAGMENT, S1, Depth(0)),
open(QN_P_FRAGMENT, S1, Depth(0)),
// empty @id
Xirf::Attr(Attr(QN_ID, "".into(), AttrSpan(S3, S4))),
Xirf::Text(Text("text".into(), S4), Depth(1)),
@ -597,10 +597,10 @@ fn _sym_fragment_missing_text() {
let id = "fragsym".into();
let toks = [
open(QN_FRAGMENT, S1, Depth(0)),
open(QN_P_FRAGMENT, S1, Depth(0)),
Xirf::Attr(Attr(QN_ID, id, AttrSpan(S3, S4))),
// missing text
close(Some(QN_FRAGMENT), S5, Depth(0)),
close(Some(QN_P_FRAGMENT), S5, Depth(0)),
]
.into_iter();
@ -627,32 +627,32 @@ fn xmlo_composite_parsers_header() {
let toks_header = [
open(QN_PACKAGE, S1, Depth(0)),
// <preproc:symtable>
open(QN_SYMTABLE, S2, Depth(1)),
open(QN_P_SYMTABLE, S2, Depth(1)),
// <preproc:sym
open(QN_SYM, S3, Depth(2)),
open(QN_P_SYM, S3, Depth(2)),
Xirf::Attr(Attr(QN_NAME, sym_name, AttrSpan(S2, S3))),
close_empty(S4, Depth(2)),
// />
close(Some(QN_SYMTABLE), S4, Depth(1)),
close(Some(QN_P_SYMTABLE), S4, Depth(1)),
// </preproc:symtable>
// <preproc:sym-deps>
open(QN_SYM_DEPS, S2, Depth(1)),
open(QN_P_SYM_DEPS, S2, Depth(1)),
// <preproc:sym-dep
open(QN_SYM_DEP, S3, Depth(3)),
open(QN_P_SYM_DEP, S3, Depth(3)),
Xirf::Attr(Attr(QN_NAME, symdep_name, AttrSpan(S2, S3))),
close(Some(QN_SYM_DEP), S4, Depth(3)),
close(Some(QN_P_SYM_DEP), S4, Depth(3)),
// </preproc:sym-dep>
close(Some(QN_SYM_DEPS), S3, Depth(1)),
close(Some(QN_P_SYM_DEPS), S3, Depth(1)),
// </preproc:sym-deps>
// <preproc:fragments>
open(QN_FRAGMENTS, S2, Depth(1)),
open(QN_P_FRAGMENTS, S2, Depth(1)),
// <preproc:fragment
open(QN_FRAGMENT, S4, Depth(2)),
open(QN_P_FRAGMENT, S4, Depth(2)),
Xirf::Attr(Attr(QN_ID, symfrag_id, AttrSpan(S2, S3))),
Xirf::Text(Text(frag, S5), Depth(3)),
close(Some(QN_FRAGMENT), S4, Depth(2)),
close(Some(QN_P_FRAGMENT), S4, Depth(2)),
// </preproc:fragment>
close(Some(QN_FRAGMENTS), S3, Depth(1)),
close(Some(QN_P_FRAGMENTS), S3, Depth(1)),
// </preproc:fragments>
// No closing root node:
// ensure that we can just end at the header without parsing further).

View File

@ -103,13 +103,8 @@ pub mod qname {
QN_DESC: :L_DESC,
QN_DIM: :L_DIM,
QN_DTYPE: :L_DTYPE,
QN_ELIG_CLASS_YIELDS: L_PREPROC:L_ELIG_CLASS_YIELDS,
QN_EXPORT: :L_EXPORT,
QN_EXTERN: :L_EXTERN,
QN_FRAGMENT: L_PREPROC:L_FRAGMENT,
QN_FRAGMENTS: L_PREPROC:L_FRAGMENTS,
QN_FROM: L_PREPROC:L_FROM,
QN_GENERATED: L_PREPROC:L_GENERATED,
QN_ID: :L_ID,
QN_ISOVERRIDE: :L_ISOVERRIDE,
QN_LV_PACKAGE: L_LV:L_PACKAGE,
@ -124,13 +119,7 @@ pub mod qname {
QN_PACKAGE: :L_PACKAGE,
QN_PARENT: :L_PARENT,
QN_PROGRAM: :L_PROGRAM,
QN_P_SYM: L_PREPROC:L_SYM,
QN_SRC: :L_SRC,
QN_SYM: L_PREPROC:L_SYM,
QN_SYMTABLE: L_PREPROC:L_SYMTABLE,
QN_SYM_DEP: L_PREPROC:L_SYM_DEP,
QN_SYM_DEPS: L_PREPROC:L_SYM_DEPS,
QN_SYM_REF: L_PREPROC:L_SYM_REF,
QN_TITLE: :L_TITLE,
QN_TYPE: :L_TYPE,
QN_UUROOTPATH: :L_UUROOTPATH,
@ -138,9 +127,20 @@ pub mod qname {
QN_VIRTUAL: :L_VIRTUAL,
QN_XMLNS: :L_XMLNS,
QN_XMLNS_L: L_XMLNS:L_L,
QN_XMLNS_PREPROC: L_XMLNS:L_PREPROC,
QN_YIELDS: :L_YIELDS,
QN_P_ELIG_CLASS_YIELDS: L_PREPROC:L_ELIG_CLASS_YIELDS,
QN_P_FRAGMENT: L_PREPROC:L_FRAGMENT,
QN_P_FRAGMENTS: L_PREPROC:L_FRAGMENTS,
QN_P_FROM: L_PREPROC:L_FROM,
QN_P_GENERATED: L_PREPROC:L_GENERATED,
QN_P_SYM: L_PREPROC:L_SYM,
QN_P_SYMTABLE: L_PREPROC:L_SYMTABLE,
QN_P_SYM_DEP: L_PREPROC:L_SYM_DEP,
QN_P_SYM_DEPS: L_PREPROC:L_SYM_DEPS,
QN_P_SYM_REF: L_PREPROC:L_SYM_REF,
QN_XMLNS_PREPROC: L_XMLNS:L_PREPROC,
QN_C_EQ: L_C:L_EQ,
QN_C_GT: L_C:L_GT,
}