summaryrefslogtreecommitdiff
path: root/tests/lexers/csharp
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2021-01-18 21:24:00 +0100
committerGeorg Brandl <georg@python.org>2021-01-18 22:08:36 +0100
commit2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch)
tree809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/csharp
parentf0445be718da83541ea3401aad882f3937147263 (diff)
downloadpygments-git-examplefiles.tar.gz
Move test_examplefiles to new tests/lexers scheme.examplefiles
Diffstat (limited to 'tests/lexers/csharp')
-rw-r--r--tests/lexers/csharp/example.txt3150
1 files changed, 3150 insertions, 0 deletions
diff --git a/tests/lexers/csharp/example.txt b/tests/lexers/csharp/example.txt
new file mode 100644
index 00000000..1378d476
--- /dev/null
+++ b/tests/lexers/csharp/example.txt
@@ -0,0 +1,3150 @@
+---input---
+////////////////////////////////////////////////////////////////////////////////
+// //
+// MIT X11 license, Copyright (c) 2005-2006 by: //
+// //
+// Authors: //
+// Michael Dominic K. <michaldominik@gmail.com> //
+// //
+// Permission is hereby granted, free of charge, to any person obtaining a //
+// copy of this software and associated documentation files (the "Software"), //
+// to deal in the Software without restriction, including without limitation //
+// the rights to use, copy, modify, merge, publish, distribute, sublicense, //
+// and/or sell copies of the Software, and to permit persons to whom the //
+// Software is furnished to do so, subject to the following conditions: //
+// //
+// The above copyright notice and this permission notice shall be included //
+// in all copies or substantial portions of the Software. //
+// //
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN //
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, //
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE //
+// USE OR OTHER DEALINGS IN THE SOFTWARE. //
+// //
+////////////////////////////////////////////////////////////////////////////////
+
+namespace Diva.Core {
+
+ using System;
+ using Widgets;
+ using System.Xml;
+ using Util;
+ using System.Collections.Generic;
+ using System.Collections;
+ using Basics;
+
+ public class OpenerTask : Task, IBoilProvider {
+
+ // Private structs ////////////////////////////////////////////
+
+ struct ObjectInfo {
+
+ public ObjectContainer Container;
+ public int[] Depends;
+ public string SystemType;
+ public int RefId;
+
+ /* CONSTRUCTOR */
+ public ObjectInfo (ObjectContainer container)
+ {
+ Container = container;
+ Depends = container.Depends.ToArray ();
+ SystemType = container.SystemType;
+ RefId = container.RefId;
+ }
+
+ public override string ToString ()
+ {
+ return String.Format ("Type: {0} Deps count: {1} Id: {2}",
+ SystemType, Depends.Length, RefId);
+ }
+
+ public bool IsUnBoilable (IBoilProvider provider)
+ {
+ if (Depends.Length == 0)
+ return true;
+
+ foreach (int id in Depends)
+ if (! (provider.Contains (id)))
+ return false;
+
+ return true;
+ }
+
+ }
+
+ // Enums //////////////////////////////////////////////////////
+
+ enum OpenerTaskStep { Init, Header, ProjectInfoRead, ObjectListRead,
+ ObjectListParse, ObjectListUnBoil, FindRoots,
+ Finished };
+
+ // Fields /////////////////////////////////////////////////////
+
+ string fileName; // Filename we're reading
+ XmlDocument xmlDocument; // Our document
+ //XmlNode projectInfoNode; // <projectinfo> node
+ IEnumerator objectsEnumerator; // Enumerator
+ List <ObjectInfo> objectsList; // Objects list
+ ObjectListContainer objectListContainer;
+ OpenerTaskStep currentStep; // Our current step
+
+ Dictionary <int, object> idToObject; // Id -> object
+ Dictionary <object, int> objectToId; // Object -> Id
+
+ string projectName = String.Empty;
+ string projectDirectory = String.Empty;
+ TagList projectTagList;
+ StuffList projectStuffList;
+ TrackList projectTrackList;
+ ClipList projectClipList;
+ MediaItemList projectMediaItemList;
+ Commander projectCommander;
+ Gdv.Pipeline projectPipeline;
+ Gdv.ProjectFormat projectFormat;
+
+ // Properties /////////////////////////////////////////////////
+
+ public string ProjectName {
+ get { return projectName; }
+ }
+
+ public string ProjectDirectory {
+ get { return projectDirectory; }
+ }
+
+ public TagList ProjectTagList {
+ get { return projectTagList; }
+ }
+
+ public StuffList ProjectStuffList {
+ get { return projectStuffList; }
+ }
+
+ public TrackList ProjectTrackList {
+ get { return projectTrackList; }
+ }
+
+ public ClipList ProjectClipList {
+ get { return projectClipList; }
+ }
+
+ public MediaItemList ProjectMediaItemList {
+ get { return projectMediaItemList; }
+ }
+
+ public Commander ProjectCommander {
+ get { return projectCommander; }
+ }
+
+ public Gdv.Pipeline ProjectPipeline {
+ get { return projectPipeline; }
+ }
+
+ public Gdv.ProjectFormat ProjectFormat {
+ get { return projectFormat; }
+ }
+
+ // Public methods /////////////////////////////////////////////
+
+ /* CONSTRUCTOR */
+ public OpenerTask (string fileName)
+ {
+ this.fileName = fileName;
+ var verbatimString = @"c:\test\";
+
+ var verbatimStringWithNewline = @"test \\ \n \t \r
+a
+b
+c";
+ var verbatimStringWithEscapedQuotes = @"He said
+""she says \"" is not an escaped character in verbatimstrings""
+";
+
+ int[] numbers = { 5,6,4,2,4,6,8,9,7,0 };
+ var linqExample = from n in numbers
+ where n > 5
+ select n;
+
+ var anotherlinqExample = from n in numbers
+ orderby n descending
+ select n;
+
+ int[] someMoreNumbers = { 8,2,17,34,8,9,9,5,3,4,2,1,5 };
+ var moreLinq = from n in numbers
+ join mn in moreNumbers on n equals mn + 2
+ select new {n, mn};
+ }
+
+ public override void Reset ()
+ {
+ objectToId = new Dictionary <object, int> ();
+ idToObject = new Dictionary <int, object> ();
+
+ xmlDocument = null;
+ //projectInfoNode = null;
+
+ currentStep = OpenerTaskStep.Init;
+
+ base.Reset ();
+ }
+
+ public int GetIdForObject (object o)
+ {
+ return objectToId [o];
+ }
+
+ public object GetObjectForId (int id)
+ {
+ return idToObject [id];
+ }
+
+ public bool Contains (int id)
+ {
+ return idToObject.ContainsKey (id);
+ }
+
+ // Private methods ////////////////////////////////////////////
+
+ protected override TaskStatus ExecuteStep (int s)
+ {
+ bool cont = true;
+
+ // Main
+ switch (currentStep) {
+
+ case OpenerTaskStep.Init:
+ objectsList = new List <ObjectInfo> ();
+ xmlDocument = new XmlDocument ();
+ xmlDocument.Load (fileName);
+ currentStep = OpenerTaskStep.Header;
+ break;
+
+ case OpenerTaskStep.Header:
+ //ReadHeader ();
+ currentStep = OpenerTaskStep.ProjectInfoRead;
+ break;
+
+ case OpenerTaskStep.ProjectInfoRead:
+ foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
+ if (node.Name == "projectinfo")
+ ResolveProjectInfoNode (node);
+
+ // FIXME: Fail if not found/not resolved
+ currentStep = OpenerTaskStep.ObjectListRead;
+ break;
+
+ case OpenerTaskStep.ObjectListRead:
+ foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
+ if (node.Name == "objectlist")
+ objectListContainer = (ObjectListContainer)
+ DataFactory.MakeDataElement (node as XmlElement);
+
+ if (objectListContainer == null)
+ throw new Exception ("ObjectListContainer not found!");
+
+ currentStep = OpenerTaskStep.ObjectListParse;
+ break;
+
+ case OpenerTaskStep.ObjectListParse:
+ bool flush = EnumerateSomeObjects ();
+ if (flush)
+ currentStep = OpenerTaskStep.ObjectListUnBoil;
+ break;
+
+ case OpenerTaskStep.ObjectListUnBoil:
+ bool done = UnBoilSomeObjects ();
+ if (done)
+ currentStep = OpenerTaskStep.FindRoots;
+ break;
+
+
+ case OpenerTaskStep.FindRoots:
+ projectTrackList = (TrackList) FindRoot ("tracklist");
+ projectTagList = (TagList) FindRoot ("taglist");
+ projectStuffList = (StuffList) FindRoot ("stufflist");
+ projectClipList = (ClipList) FindRoot ("cliplist");
+ projectMediaItemList = (MediaItemList) FindRoot ("mediaitemlist");
+ projectPipeline = (Gdv.Pipeline) FindRoot ("pipeline");
+ projectCommander = (Commander) FindRoot ("commander");
+ projectFormat = (Gdv.ProjectFormat) FindRoot ("projectformat");
+
+ currentStep = OpenerTaskStep.Finished;
+ break;
+
+ case OpenerTaskStep.Finished:
+ cont = false;
+ break;
+
+ default:
+ break;
+ }
+
+ // Post
+ if (cont)
+ return TaskStatus.Running;
+ else
+ return TaskStatus.Done;
+ }
+
+ /*
+ void ReadHeader ()
+ {
+ // FIXME: Read all the attributes from the <divaproject> element
+ }*/
+
+ void ResolveProjectInfoNode (XmlNode node)
+ {
+ foreach (XmlNode childNode in node) {
+
+ switch (childNode.Name) {
+
+ case "name":
+ projectName = childNode.FirstChild.Value;
+ break;
+
+ case "directory":
+ projectDirectory = childNode.FirstChild.Value;
+ break;
+
+ // FIXME: Duration etc.
+ }
+ }
+ }
+
+ bool EnumerateSomeObjects ()
+ {
+ if (objectsEnumerator == null)
+ objectsEnumerator = objectListContainer.FindAllObjects ().GetEnumerator ();
+
+ for (int i = 0; i < 10; i++) {
+ if (objectsEnumerator.MoveNext () == false)
+ return true;
+
+ ObjectContainer container = (ObjectContainer)
+ objectsEnumerator.Current;
+
+ ObjectInfo newInfo = new ObjectInfo (container);
+ objectsList.Add (newInfo);
+ }
+
+ return false;
+ }
+
+ ObjectInfo GetNextCandidate ()
+ {
+ foreach (ObjectInfo objInfo in objectsList)
+ if (objInfo.IsUnBoilable (this))
+ return objInfo;
+
+ throw new Exception ("FIXME: No more unboilable objects found. Recursive?");
+ }
+
+ bool UnBoilSomeObjects ()
+ {
+ for (int i = 0; i < 5; i++) {
+ // All unboiled
+ if (objectsList.Count == 0)
+ return true;
+
+ ObjectInfo objInfo = GetNextCandidate ();
+
+ object o = BoilFactory.UnBoil (objInfo.Container, this);
+ objectsList.Remove (objInfo);
+
+ // Add
+ idToObject [objInfo.RefId] = o;
+ objectToId [o] = objInfo.RefId;
+
+ }
+
+ return false;
+ }
+
+ object FindRoot (string rootString)
+ {
+ ObjectContainer container = objectListContainer.FindObjectContainer (rootString);
+ return idToObject [container.RefId];
+ }
+
+ }
+
+}
+
+---tokens---
+'////////////////////////////////////////////////////////////////////////////////\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'// MIT X11 license, Copyright (c) 2005-2006 by: //\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'// Authors: //\n' Comment.Single
+
+'// Michael Dominic K. <michaldominik@gmail.com> //\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'// Permission is hereby granted, free of charge, to any person obtaining a //\n' Comment.Single
+
+'// copy of this software and associated documentation files (the "Software"), //\n' Comment.Single
+
+'// to deal in the Software without restriction, including without limitation //\n' Comment.Single
+
+'// the rights to use, copy, modify, merge, publish, distribute, sublicense, //\n' Comment.Single
+
+'// and/or sell copies of the Software, and to permit persons to whom the //\n' Comment.Single
+
+'// Software is furnished to do so, subject to the following conditions: //\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'// The above copyright notice and this permission notice shall be included //\n' Comment.Single
+
+'// in all copies or substantial portions of the Software. //\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //\n' Comment.Single
+
+'// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //\n' Comment.Single
+
+'// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN //\n' Comment.Single
+
+'// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, //\n' Comment.Single
+
+'// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //\n' Comment.Single
+
+'// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE //\n' Comment.Single
+
+'// USE OR OTHER DEALINGS IN THE SOFTWARE. //\n' Comment.Single
+
+'// //\n' Comment.Single
+
+'////////////////////////////////////////////////////////////////////////////////\n' Comment.Single
+
+'\n' Text
+
+'namespace' Keyword
+' ' Text
+'Diva.Core' Name.Namespace
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'System' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'Widgets' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'System.Xml' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'Util' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'System.Collections.Generic' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'System.Collections' Name.Namespace
+';' Punctuation
+'\n' Text
+
+' ' Text
+'using' Keyword
+' ' Text
+'Basics' Name.Namespace
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'class' Keyword
+' ' Text
+'OpenerTask' Name.Class
+' ' Text
+':' Punctuation
+' ' Text
+'Task' Name
+',' Punctuation
+' ' Text
+'IBoilProvider' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// Private structs ////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'struct' Keyword
+' ' Text
+'ObjectInfo' Name.Class
+' ' Text
+'{' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'ObjectContainer' Name
+' ' Text
+'Container' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'int' Keyword.Type
+'[' Punctuation
+']' Punctuation
+' ' Text
+'Depends' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'string' Keyword.Type
+' ' Text
+'SystemType' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'int' Keyword.Type
+' ' Text
+'RefId' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'/* CONSTRUCTOR */' Comment.Multiline
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'ObjectInfo' Name.Function
+' ' Text
+'(' Punctuation
+'ObjectContainer' Name
+' ' Text
+'container' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'Container' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'container' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Depends' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'container' Name
+'.' Punctuation
+'Depends' Name
+'.' Punctuation
+'ToArray' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'SystemType' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'container' Name
+'.' Punctuation
+'SystemType' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'RefId' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'container' Name
+'.' Punctuation
+'RefId' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'override' Keyword
+' ' Text
+'string' Keyword.Type
+' ' Text
+'ToString' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'String' Name
+'.' Punctuation
+'Format' Name
+' ' Text
+'(' Punctuation
+'"Type: {0} Deps count: {1} Id: {2}"' Literal.String
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SystemType' Name
+',' Punctuation
+' ' Text
+'Depends' Name
+'.' Punctuation
+'Length' Name
+',' Punctuation
+' ' Text
+'RefId' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'IsUnBoilable' Name.Function
+' ' Text
+'(' Punctuation
+'IBoilProvider' Name
+' ' Text
+'provider' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'Depends' Name
+'.' Punctuation
+'Length' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'0' Literal.Number
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'id' Name
+' ' Text
+'in' Keyword
+' ' Text
+'Depends' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'!' Punctuation
+' ' Text
+'(' Punctuation
+'provider' Name
+'.' Punctuation
+'Contains' Name
+' ' Text
+'(' Punctuation
+'id' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'false' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Enums //////////////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'enum' Keyword
+' ' Text
+'OpenerTaskStep' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'Init' Name
+',' Punctuation
+' ' Text
+'Header' Name
+',' Punctuation
+' ' Text
+'ProjectInfoRead' Name
+',' Punctuation
+' ' Text
+'ObjectListRead' Name
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ObjectListParse' Name
+',' Punctuation
+' ' Text
+'ObjectListUnBoil' Name
+',' Punctuation
+' ' Text
+'FindRoots' Name
+',' Punctuation
+'\n' Text
+
+' ' Text
+'Finished' Name
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Fields /////////////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'string' Keyword.Type
+' ' Text
+'fileName' Name
+';' Punctuation
+' ' Text
+"// Filename we're reading\n" Comment.Single
+
+' ' Text
+'XmlDocument' Name
+' ' Text
+'xmlDocument' Name
+';' Punctuation
+' ' Text
+'// Our document\n' Comment.Single
+
+' ' Text
+'//XmlNode projectInfoNode; // <projectinfo> node\n' Comment.Single
+
+' ' Text
+'IEnumerator' Name
+' ' Text
+'objectsEnumerator' Name
+';' Punctuation
+' ' Text
+'// Enumerator\n' Comment.Single
+
+' ' Text
+'List' Name
+' ' Text
+'<' Punctuation
+'ObjectInfo' Name
+'>' Punctuation
+' ' Text
+'objectsList' Name
+';' Punctuation
+' ' Text
+'// Objects list\n' Comment.Single
+
+' ' Text
+'ObjectListContainer' Name
+' ' Text
+'objectListContainer' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'OpenerTaskStep' Name
+' ' Text
+'currentStep' Name
+';' Punctuation
+' ' Text
+'// Our current step\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'Dictionary' Name
+' ' Text
+'<' Punctuation
+'int' Keyword.Type
+',' Punctuation
+' ' Text
+'object' Keyword.Type
+'>' Punctuation
+' ' Text
+'idToObject' Name
+';' Punctuation
+' ' Text
+'// Id -> object\n' Comment.Single
+
+' ' Text
+'Dictionary' Name
+' ' Text
+'<' Punctuation
+'object' Keyword.Type
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+'>' Punctuation
+' ' Text
+'objectToId' Name
+';' Punctuation
+' ' Text
+'// Object -> Id\n' Comment.Single
+
+'\n' Text
+
+' ' Text
+'string' Keyword.Type
+' ' Text
+'projectName' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'String' Name
+'.' Punctuation
+'Empty' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'string' Keyword.Type
+' ' Text
+'projectDirectory' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'String' Name
+'.' Punctuation
+'Empty' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TagList' Name
+' ' Text
+'projectTagList' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'StuffList' Name
+' ' Text
+'projectStuffList' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TrackList' Name
+' ' Text
+'projectTrackList' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'ClipList' Name
+' ' Text
+'projectClipList' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'MediaItemList' Name
+' ' Text
+'projectMediaItemList' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Commander' Name
+' ' Text
+'projectCommander' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Gdv' Name
+'.' Punctuation
+'Pipeline' Name
+' ' Text
+'projectPipeline' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Gdv' Name
+'.' Punctuation
+'ProjectFormat' Name
+' ' Text
+'projectFormat' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Properties /////////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'string' Keyword.Type
+' ' Text
+'ProjectName' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectName' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'string' Keyword.Type
+' ' Text
+'ProjectDirectory' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectDirectory' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'TagList' Name
+' ' Text
+'ProjectTagList' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectTagList' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'StuffList' Name
+' ' Text
+'ProjectStuffList' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectStuffList' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'TrackList' Name
+' ' Text
+'ProjectTrackList' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectTrackList' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'ClipList' Name
+' ' Text
+'ProjectClipList' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectClipList' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'MediaItemList' Name
+' ' Text
+'ProjectMediaItemList' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectMediaItemList' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'Commander' Name
+' ' Text
+'ProjectCommander' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectCommander' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'Gdv' Name
+'.' Punctuation
+'Pipeline' Name
+' ' Text
+'ProjectPipeline' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectPipeline' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'Gdv' Name
+'.' Punctuation
+'ProjectFormat' Name
+' ' Text
+'ProjectFormat' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'projectFormat' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// Public methods /////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'/* CONSTRUCTOR */' Comment.Multiline
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'OpenerTask' Name.Function
+' ' Text
+'(' Punctuation
+'string' Keyword.Type
+' ' Text
+'fileName' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'this' Keyword
+'.' Punctuation
+'fileName' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'fileName' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'verbatimString' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'@"c:\\test\\"' Literal.String
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'verbatimStringWithNewline' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'@"test \\\\ \\n \\t \\r\na\nb\nc"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'verbatimStringWithEscapedQuotes' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'@"He said\n""she says \\"" is not an escaped character in verbatimstrings""\n"' Literal.String
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+'[' Punctuation
+']' Punctuation
+' ' Text
+'numbers' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'5' Literal.Number
+',' Punctuation
+'6' Literal.Number
+',' Punctuation
+'4' Literal.Number
+',' Punctuation
+'2' Literal.Number
+',' Punctuation
+'4' Literal.Number
+',' Punctuation
+'6' Literal.Number
+',' Punctuation
+'8' Literal.Number
+',' Punctuation
+'9' Literal.Number
+',' Punctuation
+'7' Literal.Number
+',' Punctuation
+'0' Literal.Number
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'linqExample' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'from' Keyword
+' ' Text
+'n' Name
+' ' Text
+'in' Keyword
+' ' Text
+'numbers' Name
+'\n' Text
+
+' ' Text
+'where' Keyword
+' ' Text
+'n' Name
+' ' Text
+'>' Punctuation
+' ' Text
+'5' Literal.Number
+'\n' Text
+
+' ' Text
+'select' Keyword
+' ' Text
+'n' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'anotherlinqExample' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'from' Keyword
+' ' Text
+'n' Name
+' ' Text
+'in' Keyword
+' ' Text
+'numbers' Name
+'\n' Text
+
+' ' Text
+'orderby' Keyword
+' ' Text
+'n' Name
+' ' Text
+'descending' Keyword
+'\n' Text
+
+' ' Text
+'select' Keyword
+' ' Text
+'n' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+'[' Punctuation
+']' Punctuation
+' ' Text
+'someMoreNumbers' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'8' Literal.Number
+',' Punctuation
+'2' Literal.Number
+',' Punctuation
+'1' Literal.Number
+'7' Literal.Number
+',' Punctuation
+'3' Literal.Number
+'4' Literal.Number
+',' Punctuation
+'8' Literal.Number
+',' Punctuation
+'9' Literal.Number
+',' Punctuation
+'9' Literal.Number
+',' Punctuation
+'5' Literal.Number
+',' Punctuation
+'3' Literal.Number
+',' Punctuation
+'4' Literal.Number
+',' Punctuation
+'2' Literal.Number
+',' Punctuation
+'1' Literal.Number
+',' Punctuation
+'5' Literal.Number
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'var' Keyword.Type
+' ' Text
+'moreLinq' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'from' Keyword
+' ' Text
+'n' Name
+' ' Text
+'in' Keyword
+' ' Text
+'numbers' Name
+'\n' Text
+
+' ' Text
+'join' Keyword
+' ' Text
+'mn' Name
+' ' Text
+'in' Keyword
+' ' Text
+'moreNumbers' Name
+' ' Text
+'on' Keyword
+' ' Text
+'n' Name
+' ' Text
+'equals' Keyword
+' ' Text
+'mn' Name
+' ' Text
+'+' Punctuation
+' ' Text
+'2' Literal.Number
+'\n' Text
+
+' ' Text
+'select' Keyword
+' ' Text
+'new' Keyword
+' ' Text
+'{' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'mn' Name
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'override' Keyword
+' ' Text
+'void' Keyword
+' ' Text
+'Reset' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'objectToId' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'new' Keyword
+' ' Text
+'Dictionary' Name
+' ' Text
+'<' Punctuation
+'object' Keyword.Type
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+'>' Punctuation
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'idToObject' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'new' Keyword
+' ' Text
+'Dictionary' Name
+' ' Text
+'<' Punctuation
+'int' Keyword.Type
+',' Punctuation
+' ' Text
+'object' Keyword.Type
+'>' Punctuation
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'xmlDocument' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'null' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//projectInfoNode = null;\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Init' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'base' Keyword
+'.' Punctuation
+'Reset' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'int' Keyword.Type
+' ' Text
+'GetIdForObject' Name.Function
+' ' Text
+'(' Punctuation
+'object' Keyword.Type
+' ' Text
+'o' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'objectToId' Name
+' ' Text
+'[' Punctuation
+'o' Name
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'object' Keyword.Type
+' ' Text
+'GetObjectForId' Name.Function
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'id' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'idToObject' Name
+' ' Text
+'[' Punctuation
+'id' Name
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'public' Keyword
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'Contains' Name.Function
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'id' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'idToObject' Name
+'.' Punctuation
+'ContainsKey' Name
+' ' Text
+'(' Punctuation
+'id' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Private methods ////////////////////////////////////////////\n' Comment.Single
+
+' ' Text
+'\n' Text
+
+' ' Text
+'protected' Keyword
+' ' Text
+'override' Keyword
+' ' Text
+'TaskStatus' Name
+' ' Text
+'ExecuteStep' Name.Function
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'s' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'cont' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'true' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Main\n' Comment.Single
+
+' ' Text
+'switch' Keyword
+' ' Text
+'(' Punctuation
+'currentStep' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Init' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'objectsList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'new' Keyword
+' ' Text
+'List' Name
+' ' Text
+'<' Punctuation
+'ObjectInfo' Name
+'>' Punctuation
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'xmlDocument' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'new' Keyword
+' ' Text
+'XmlDocument' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'xmlDocument' Name
+'.' Punctuation
+'Load' Name
+' ' Text
+'(' Punctuation
+'fileName' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Header' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Header' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'//ReadHeader ();\n' Comment.Single
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ProjectInfoRead' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ProjectInfoRead' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'XmlNode' Name
+' ' Text
+'node' Name
+' ' Text
+'in' Keyword
+' ' Text
+'xmlDocument' Name
+'.' Punctuation
+'DocumentElement' Name
+'.' Punctuation
+'ChildNodes' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'node' Name
+'.' Punctuation
+'Name' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'"projectinfo"' Literal.String
+')' Punctuation
+' ' Text
+'\n' Text
+
+' ' Text
+'ResolveProjectInfoNode' Name
+' ' Text
+'(' Punctuation
+'node' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// FIXME: Fail if not found/not resolved\n' Comment.Single
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListRead' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListRead' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'XmlNode' Name
+' ' Text
+'node' Name
+' ' Text
+'in' Keyword
+' ' Text
+'xmlDocument' Name
+'.' Punctuation
+'DocumentElement' Name
+'.' Punctuation
+'ChildNodes' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'node' Name
+'.' Punctuation
+'Name' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'"objectlist"' Literal.String
+')' Punctuation
+' ' Text
+'\n' Text
+
+' ' Text
+'objectListContainer' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'ObjectListContainer' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'DataFactory' Name
+'.' Punctuation
+'MakeDataElement' Name
+' ' Text
+'(' Punctuation
+'node' Name
+' ' Text
+'as' Keyword
+' ' Text
+'XmlElement' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'objectListContainer' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'null' Keyword
+')' Punctuation
+'\n' Text
+
+' ' Text
+'throw' Keyword
+' ' Text
+'new' Keyword
+' ' Text
+'Exception' Name.Function
+' ' Text
+'(' Punctuation
+'"ObjectListContainer not found!"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListParse' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListParse' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'flush' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'EnumerateSomeObjects' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'flush' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListUnBoil' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'ObjectListUnBoil' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'done' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'UnBoilSomeObjects' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'done' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'FindRoots' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'FindRoots' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'projectTrackList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'TrackList' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"tracklist"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectTagList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'TagList' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"taglist"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectStuffList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'StuffList' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"stufflist"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectClipList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'ClipList' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"cliplist"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectMediaItemList' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'MediaItemList' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"mediaitemlist"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectPipeline' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Gdv' Name
+'.' Punctuation
+'Pipeline' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"pipeline"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectCommander' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Commander' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"commander"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'projectFormat' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Gdv' Name
+'.' Punctuation
+'ProjectFormat' Name
+')' Punctuation
+' ' Text
+'FindRoot' Name
+' ' Text
+'(' Punctuation
+'"projectformat"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'currentStep' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Finished' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'OpenerTaskStep' Name
+'.' Punctuation
+'Finished' Name
+':' Punctuation
+'\n' Text
+
+' ' Text
+'cont' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'false' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'default' Keyword
+':' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'// Post \n' Comment.Single
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'cont' Name
+')' Punctuation
+' ' Text
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'TaskStatus' Name
+'.' Punctuation
+'Running' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'TaskStatus' Name
+'.' Punctuation
+'Done' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'/*\n void ReadHeader ()\n {\n // FIXME: Read all the attributes from the <divaproject> element\n }*/' Comment.Multiline
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'void' Keyword
+' ' Text
+'ResolveProjectInfoNode' Name.Function
+' ' Text
+'(' Punctuation
+'XmlNode' Name
+' ' Text
+'node' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'XmlNode' Name
+' ' Text
+'childNode' Name
+' ' Text
+'in' Keyword
+' ' Text
+'node' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'switch' Keyword
+' ' Text
+'(' Punctuation
+'childNode' Name
+'.' Punctuation
+'Name' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'"name"' Literal.String
+':' Punctuation
+'\n' Text
+
+' ' Text
+'projectName' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'childNode' Name
+'.' Punctuation
+'FirstChild' Name
+'.' Punctuation
+'Value' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'"directory"' Literal.String
+':' Punctuation
+'\n' Text
+
+' ' Text
+'projectDirectory' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'childNode' Name
+'.' Punctuation
+'FirstChild' Name
+'.' Punctuation
+'Value' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// FIXME: Duration etc.\n' Comment.Single
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'EnumerateSomeObjects' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'objectsEnumerator' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'null' Keyword
+')' Punctuation
+'\n' Text
+
+' ' Text
+'objectsEnumerator' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'objectListContainer' Name
+'.' Punctuation
+'FindAllObjects' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+'.' Punctuation
+'GetEnumerator' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'for' Keyword
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'i' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'0' Literal.Number
+';' Punctuation
+' ' Text
+'i' Name
+' ' Text
+'<' Punctuation
+' ' Text
+'1' Literal.Number
+'0' Literal.Number
+';' Punctuation
+' ' Text
+'i' Name
+'+' Punctuation
+'+' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'objectsEnumerator' Name
+'.' Punctuation
+'MoveNext' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'false' Keyword
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'ObjectContainer' Name
+' ' Text
+'container' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'ObjectContainer' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'objectsEnumerator' Name
+'.' Punctuation
+'Current' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'ObjectInfo' Name
+' ' Text
+'newInfo' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'new' Keyword
+' ' Text
+'ObjectInfo' Name
+' ' Text
+'(' Punctuation
+'container' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'objectsList' Name
+'.' Punctuation
+'Add' Name
+' ' Text
+'(' Punctuation
+'newInfo' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'false' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'ObjectInfo' Name
+' ' Text
+'GetNextCandidate' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'ObjectInfo' Name
+' ' Text
+'objInfo' Name
+' ' Text
+'in' Keyword
+' ' Text
+'objectsList' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'objInfo' Name
+'.' Punctuation
+'IsUnBoilable' Name
+' ' Text
+'(' Punctuation
+'this' Keyword
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'objInfo' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'throw' Keyword
+' ' Text
+'new' Keyword
+' ' Text
+'Exception' Name.Function
+' ' Text
+'(' Punctuation
+'"FIXME: No more unboilable objects found. Recursive?"' Literal.String
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'UnBoilSomeObjects' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'for' Keyword
+' ' Text
+'(' Punctuation
+'int' Keyword.Type
+' ' Text
+'i' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'0' Literal.Number
+';' Punctuation
+' ' Text
+'i' Name
+' ' Text
+'<' Punctuation
+' ' Text
+'5' Literal.Number
+';' Punctuation
+' ' Text
+'i' Name
+'+' Punctuation
+'+' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'// All unboiled\n' Comment.Single
+
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'objectsList' Name
+'.' Punctuation
+'Count' Name
+' ' Text
+'=' Punctuation
+'=' Punctuation
+' ' Text
+'0' Literal.Number
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'ObjectInfo' Name
+' ' Text
+'objInfo' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'GetNextCandidate' Name
+' ' Text
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'object' Keyword.Type
+' ' Text
+'o' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'BoilFactory' Name
+'.' Punctuation
+'UnBoil' Name
+' ' Text
+'(' Punctuation
+'objInfo' Name
+'.' Punctuation
+'Container' Name
+',' Punctuation
+' ' Text
+'this' Keyword
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'objectsList' Name
+'.' Punctuation
+'Remove' Name
+' ' Text
+'(' Punctuation
+'objInfo' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// Add\n' Comment.Single
+
+' ' Text
+'idToObject' Name
+' ' Text
+'[' Punctuation
+'objInfo' Name
+'.' Punctuation
+'RefId' Name
+']' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'o' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'objectToId' Name
+' ' Text
+'[' Punctuation
+'o' Name
+']' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'objInfo' Name
+'.' Punctuation
+'RefId' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'false' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'object' Keyword.Type
+' ' Text
+'FindRoot' Name.Function
+' ' Text
+'(' Punctuation
+'string' Keyword.Type
+' ' Text
+'rootString' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'ObjectContainer' Name
+' ' Text
+'container' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'objectListContainer' Name
+'.' Punctuation
+'FindObjectContainer' Name
+' ' Text
+'(' Punctuation
+'rootString' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'idToObject' Name
+' ' Text
+'[' Punctuation
+'container' Name
+'.' Punctuation
+'RefId' Name
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'\n' Text
+
+'}' Punctuation
+'\n' Text