Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
_WikiTerminalBase.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 
6 namespace Irony.Parsing {
7  public enum WikiTermType {
8  Text,
9  Element,
10  Format,
11  Heading,
12  List,
13  Block,
14  Table
15  }
16 
17  public abstract class WikiTerminalBase : Terminal {
18  public readonly WikiTermType TermType;
19  public readonly string OpenTag, CloseTag;
20  public string HtmlElementName, ContainerHtmlElementName;
21  public string OpenHtmlTag, CloseHtmlTag;
22  public string ContainerOpenHtmlTag, ContainerCloseHtmlTag;
23 
24  public WikiTerminalBase(string name, WikiTermType termType, string openTag, string closeTag, string htmlElementName) : base(name) {
25  TermType = termType;
26  OpenTag = openTag;
27  CloseTag = closeTag;
28  HtmlElementName = htmlElementName;
29  this.Priority = OpenTag.Length; //longer tags have higher priority
30  }
31 
32  public override IList<string> GetFirsts() {
33  return new string[] {OpenTag};
34  }
35  public override void Init(GrammarData grammarData) {
36  base.Init(grammarData);
37  if (!string.IsNullOrEmpty(HtmlElementName)) {
38  if (string.IsNullOrEmpty(OpenHtmlTag)) OpenHtmlTag = "<" + HtmlElementName + ">";
39  if (string.IsNullOrEmpty(CloseHtmlTag)) CloseHtmlTag = "</" + HtmlElementName + ">";
40  }
41  if (!string.IsNullOrEmpty(ContainerHtmlElementName)) {
42  if (string.IsNullOrEmpty(ContainerOpenHtmlTag)) ContainerOpenHtmlTag = "<" + ContainerHtmlElementName + ">";
43  if (string.IsNullOrEmpty(ContainerCloseHtmlTag)) ContainerCloseHtmlTag = "</" + ContainerHtmlElementName + ">";
44  }
45 
46  }
47 
48  }//class
49 
50 
51 
52 }//namespace
override IList< string > GetFirsts()
readonly WikiTermType TermType
WikiTerminalBase(string name, WikiTermType termType, string openTag, string closeTag, string htmlElementName)
override void Init(GrammarData grammarData)