Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Analyze()

XslFlags System.Xml.Xsl.Xslt.XslAstAnalyzer.Analyze ( Compiler compiler)
inline

Definition at line 484 of file XslAstAnalyzer.cs.

485 {
488 _xpathAnalyzer = new XPathAnalyzer(compiler, _scope);
489 foreach (VarPar externalPar in compiler.ExternalPars)
490 {
491 _scope.AddVariable(externalPar.Name, externalPar);
492 }
493 foreach (VarPar globalVar in compiler.GlobalVars)
494 {
495 _scope.AddVariable(globalVar.Name, globalVar);
496 }
497 foreach (VarPar externalPar2 in compiler.ExternalPars)
498 {
500 externalPar2.Flags |= XslFlags.TypeFilter;
501 }
502 foreach (VarPar globalVar2 in compiler.GlobalVars)
503 {
505 }
506 XslFlags xslFlags = XslFlags.None;
507 foreach (ProtoTemplate allTemplate in compiler.AllTemplates)
508 {
510 }
511 foreach (ProtoTemplate allTemplate2 in compiler.AllTemplates)
512 {
513 foreach (XslNode item in allTemplate2.Content)
514 {
515 if (item.NodeType != XslNodeType.Text)
516 {
517 if (item.NodeType != XslNodeType.Param)
518 {
519 break;
520 }
521 VarPar varPar = (VarPar)item;
522 if ((varPar.Flags & XslFlags.MayBeDefault) != 0)
523 {
524 varPar.Flags |= varPar.DefValueFlags;
525 }
526 }
527 }
528 }
529 for (int num = 32; num != 0; num >>= 1)
530 {
531 _dataFlow.PropagateFlag((XslFlags)num);
532 }
533 _dataFlow = null;
535 {
536 Stylesheet[] imports = item2.Value.Imports;
537 foreach (Stylesheet sheet in imports)
538 {
540 }
541 }
543 if ((xslFlags & XslFlags.Current) != 0)
544 {
545 _revCall0Graph.PropagateFlag(XslFlags.Current);
546 }
547 if ((xslFlags & XslFlags.Position) != 0)
548 {
549 _revCall0Graph.PropagateFlag(XslFlags.Position);
550 }
551 if ((xslFlags & XslFlags.Last) != 0)
552 {
553 _revCall0Graph.PropagateFlag(XslFlags.Last);
554 }
555 if ((xslFlags & XslFlags.SideEffects) != 0)
556 {
558 }
559 _revCall0Graph = null;
560 _revCall1Graph = null;
562 FillModeFlags(compiler.Root.ModeFlags, compiler.Root.Imports[0]);
563 return xslFlags;
564 }
override XslFlags Visit(XslNode node)
void FillModeFlags(Dictionary< QilName, XslFlags > parentModeFlags, Stylesheet sheet)
CompilerScopeManager< VarPar > _scope
Dictionary< Template, Stylesheet > _fwdApplyImportsGraph
Dictionary< QilName, List< ProtoTemplate > > _revApplyTemplatesGraph
void AddImportDependencies(Stylesheet sheet, Template focusDonor)
Graph< ProtoTemplate > _revCall0Graph
Graph< ProtoTemplate > _revCall1Graph

References System.Xml.Xsl.Xslt.XslAstAnalyzer._compiler, System.Xml.Xsl.Xslt.XslAstAnalyzer._currentTemplate, System.Xml.Xsl.Xslt.XslAstAnalyzer._dataFlow, System.Xml.Xsl.Xslt.XslAstAnalyzer._fwdApplyImportsGraph, System.Xml.Xsl.Xslt.XslAstAnalyzer._revApplyTemplatesGraph, System.Xml.Xsl.Xslt.XslAstAnalyzer._revCall0Graph, System.Xml.Xsl.Xslt.XslAstAnalyzer._revCall1Graph, System.Xml.Xsl.Xslt.XslAstAnalyzer._scope, System.Xml.Xsl.Xslt.XslAstAnalyzer._xpathAnalyzer, System.Xml.Xsl.Xslt.XslAstAnalyzer.AddImportDependencies(), System.Xml.Dictionary, System.Xml.Xsl.Xslt.XslAstAnalyzer.FillModeFlags(), System.item, System.Xml.Xsl.Xslt.XslAstAnalyzer.PropagateSideEffectsFlag(), and System.Xml.Xsl.Xslt.XslAstAnalyzer.Visit().

Referenced by System.Xml.Xsl.Xslt.QilGenerator.Compile().