##// END OF EJS Templates
DFA refactoring, rx based dfa.
cin -
r170:181119ef3b39 ref20160224
parent child
Show More
@@ -1,32 +1,32
1 using Implab;
1 using Implab;
2
2
3 namespace Implab.Automaton.RegularExpressions {
3 namespace Implab.Automaton.RegularExpressions {
4 /// <summary>
4 /// <summary>
5 /// Конечный символ расширенного регулярного выражения, при построении ДКА
5 /// Конечный символ расширенного регулярного выражения, при построении ДКА
6 /// используется для определения конечных состояний.
6 /// используется для определения конечных состояний.
7 /// </summary>
7 /// </summary>
8 public class EndToken<TTag>: Token<TTag> {
8 public class EndToken<TTag>: Token<TTag> {
9
9
10 TTag m_tag;
10 TTag m_tag;
11
11
12 public EndToken(TTag tag) {
12 public EndToken(TTag tag) {
13 m_tag = tag;
13 m_tag = tag;
14 }
14 }
15
15
16 public EndToken()
16 public EndToken()
17 : this(0) {
17 : this(default(TTag)) {
18 }
18 }
19
19
20 public TTag Tag {
20 public TTag Tag {
21 get { return m_tag; }
21 get { return m_tag; }
22 }
22 }
23
23
24 public override void Accept(IVisitor<TTag> visitor) {
24 public override void Accept(IVisitor<TTag> visitor) {
25 Safe.ArgumentNotNull(visitor, "visitor");
25 Safe.ArgumentNotNull(visitor, "visitor");
26 visitor.Visit(this);
26 visitor.Visit(this);
27 }
27 }
28 public override string ToString() {
28 public override string ToString() {
29 return "#";
29 return "#";
30 }
30 }
31 }
31 }
32 }
32 }
@@ -1,180 +1,180
1 using Implab;
1 using Implab;
2 using System;
2 using System;
3 using System.Collections.Generic;
3 using System.Collections.Generic;
4 using System.Diagnostics;
4 using System.Diagnostics;
5 using System.Linq;
5 using System.Linq;
6
6
7 namespace Implab.Automaton.RegularExpressions {
7 namespace Implab.Automaton.RegularExpressions {
8 /// <summary>
8 /// <summary>
9 /// Используется для построения ДКА по регулярному выражению, сначала обходит
9 /// Используется для построения ДКА по регулярному выражению, сначала обходит
10 /// регулярное выражение и вычисляет followpos, затем используется метод
10 /// регулярное выражение и вычисляет followpos, затем используется метод
11 /// <see cref="BuildDFA(IDFADefinition)"/> для построения автомата.
11 /// <see cref="BuildDFA(IDFADefinition)"/> для построения автомата.
12 /// </summary>
12 /// </summary>
13 public class RegularDFABuilder<TTag> : IVisitor<TTag> {
13 public class RegularDFABuilder<TTag> : IVisitor<TTag> {
14 int m_idx;
14 int m_idx;
15 Token<TTag> m_root;
15 Token<TTag> m_root;
16 HashSet<int> m_firstpos;
16 HashSet<int> m_firstpos;
17 HashSet<int> m_lastpos;
17 HashSet<int> m_lastpos;
18
18
19 readonly Dictionary<int, HashSet<int>> m_followpos = new Dictionary<int, HashSet<int>>();
19 readonly Dictionary<int, HashSet<int>> m_followpos = new Dictionary<int, HashSet<int>>();
20 readonly Dictionary<int, int> m_indexes = new Dictionary<int, int>();
20 readonly Dictionary<int, int> m_indexes = new Dictionary<int, int>();
21 readonly Dictionary<int, TTag> m_ends = new Dictionary<int, TTag>();
21 readonly Dictionary<int, TTag> m_ends = new Dictionary<int, TTag>();
22
22
23 public Dictionary<int, HashSet<int>> FollowposMap {
23 public Dictionary<int, HashSet<int>> FollowposMap {
24 get { return m_followpos; }
24 get { return m_followpos; }
25 }
25 }
26
26
27 public HashSet<int> Followpos(int pos) {
27 public HashSet<int> Followpos(int pos) {
28 HashSet<int> set;
28 HashSet<int> set;
29 return m_followpos.TryGetValue(pos, out set) ? set : m_followpos[pos] = new HashSet<int>();
29 return m_followpos.TryGetValue(pos, out set) ? set : m_followpos[pos] = new HashSet<int>();
30 }
30 }
31
31
32 bool Nullable(object n) {
32 bool Nullable(object n) {
33 if (n is EmptyToken<TTag> || n is StarToken<TTag>)
33 if (n is EmptyToken<TTag> || n is StarToken<TTag>)
34 return true;
34 return true;
35 var altToken = n as AltToken<TTag>;
35 var altToken = n as AltToken<TTag>;
36 if (altToken != null)
36 if (altToken != null)
37 return Nullable(altToken.Left) || Nullable(altToken.Right);
37 return Nullable(altToken.Left) || Nullable(altToken.Right);
38 var catToken = n as CatToken<TTag>;
38 var catToken = n as CatToken<TTag>;
39 if (catToken != null)
39 if (catToken != null)
40 return Nullable(catToken.Left) && Nullable(catToken.Right);
40 return Nullable(catToken.Left) && Nullable(catToken.Right);
41 return false;
41 return false;
42 }
42 }
43
43
44
44
45 public void Visit(AltToken<TTag> token) {
45 public void Visit(AltToken<TTag> token) {
46 if (m_root == null)
46 if (m_root == null)
47 m_root = token;
47 m_root = token;
48 var firtspos = new HashSet<int>();
48 var firtspos = new HashSet<int>();
49 var lastpos = new HashSet<int>();
49 var lastpos = new HashSet<int>();
50
50
51 token.Left.Accept(this);
51 token.Left.Accept(this);
52 firtspos.UnionWith(m_firstpos);
52 firtspos.UnionWith(m_firstpos);
53 lastpos.UnionWith(m_lastpos);
53 lastpos.UnionWith(m_lastpos);
54
54
55 token.Right.Accept(this);
55 token.Right.Accept(this);
56 firtspos.UnionWith(m_firstpos);
56 firtspos.UnionWith(m_firstpos);
57 lastpos.UnionWith(m_lastpos);
57 lastpos.UnionWith(m_lastpos);
58
58
59 m_firstpos = firtspos;
59 m_firstpos = firtspos;
60 m_lastpos = lastpos;
60 m_lastpos = lastpos;
61 }
61 }
62
62
63 public void Visit(StarToken<TTag> token) {
63 public void Visit(StarToken<TTag> token) {
64 if (m_root == null)
64 if (m_root == null)
65 m_root = token;
65 m_root = token;
66 token.Token.Accept(this);
66 token.Token.Accept(this);
67
67
68 foreach (var i in m_lastpos)
68 foreach (var i in m_lastpos)
69 Followpos(i).UnionWith(m_firstpos);
69 Followpos(i).UnionWith(m_firstpos);
70 }
70 }
71
71
72 public void Visit(CatToken<TTag> token) {
72 public void Visit(CatToken<TTag> token) {
73 if (m_root == null)
73 if (m_root == null)
74 m_root = token;
74 m_root = token;
75
75
76 var firtspos = new HashSet<int>();
76 var firtspos = new HashSet<int>();
77 var lastpos = new HashSet<int>();
77 var lastpos = new HashSet<int>();
78 token.Left.Accept(this);
78 token.Left.Accept(this);
79 firtspos.UnionWith(m_firstpos);
79 firtspos.UnionWith(m_firstpos);
80 var leftLastpos = m_lastpos;
80 var leftLastpos = m_lastpos;
81
81
82 token.Right.Accept(this);
82 token.Right.Accept(this);
83 lastpos.UnionWith(m_lastpos);
83 lastpos.UnionWith(m_lastpos);
84 var rightFirstpos = m_firstpos;
84 var rightFirstpos = m_firstpos;
85
85
86 if (Nullable(token.Left))
86 if (Nullable(token.Left))
87 firtspos.UnionWith(rightFirstpos);
87 firtspos.UnionWith(rightFirstpos);
88
88
89 if (Nullable(token.Right))
89 if (Nullable(token.Right))
90 lastpos.UnionWith(leftLastpos);
90 lastpos.UnionWith(leftLastpos);
91
91
92 m_firstpos = firtspos;
92 m_firstpos = firtspos;
93 m_lastpos = lastpos;
93 m_lastpos = lastpos;
94
94
95 foreach (var i in leftLastpos)
95 foreach (var i in leftLastpos)
96 Followpos(i).UnionWith(rightFirstpos);
96 Followpos(i).UnionWith(rightFirstpos);
97
97
98 }
98 }
99
99
100 public void Visit(EmptyToken<TTag> token) {
100 public void Visit(EmptyToken<TTag> token) {
101 if (m_root == null)
101 if (m_root == null)
102 m_root = token;
102 m_root = token;
103 }
103 }
104
104
105 public void Visit(SymbolToken<TTag> token) {
105 public void Visit(SymbolToken<TTag> token) {
106 if (m_root == null)
106 if (m_root == null)
107 m_root = token;
107 m_root = token;
108 m_idx++;
108 m_idx++;
109 m_indexes[m_idx] = token.Value;
109 m_indexes[m_idx] = token.Value;
110 m_firstpos = new HashSet<int>(new[] { m_idx });
110 m_firstpos = new HashSet<int>(new[] { m_idx });
111 m_lastpos = new HashSet<int>(new[] { m_idx });
111 m_lastpos = new HashSet<int>(new[] { m_idx });
112 }
112 }
113
113
114 public void Visit(EndToken<TTag> token) {
114 public void Visit(EndToken<TTag> token) {
115 if (m_root == null)
115 if (m_root == null)
116 m_root = token;
116 m_root = token;
117 m_idx++;
117 m_idx++;
118 m_indexes[m_idx] = DFAConst.UNCLASSIFIED_INPUT;
118 m_indexes[m_idx] = DFAConst.UNCLASSIFIED_INPUT;
119 m_firstpos = new HashSet<int>(new[] { m_idx });
119 m_firstpos = new HashSet<int>(new[] { m_idx });
120 m_lastpos = new HashSet<int>(new[] { m_idx });
120 m_lastpos = new HashSet<int>(new[] { m_idx });
121 Followpos(m_idx);
121 Followpos(m_idx);
122 m_ends.Add(m_idx, token.Tag);
122 m_ends.Add(m_idx, token.Tag);
123 }
123 }
124
124
125 public void BuildDFA(IDFATableBuilder<TTag> dfa) {
125 public void BuildDFA(IDFATableBuilder dfa) {
126 Safe.ArgumentNotNull(dfa,"dfa");
126 Safe.ArgumentNotNull(dfa,"dfa");
127
127
128 var states = new MapAlphabet<HashSet<int>>(new CustomEqualityComparer<HashSet<int>>(
128 var states = new MapAlphabet<HashSet<int>>(new CustomEqualityComparer<HashSet<int>>(
129 (x, y) => x.SetEquals(y),
129 (x, y) => x.SetEquals(y),
130 x => x.Sum(n => n.GetHashCode())
130 x => x.Sum(n => n.GetHashCode())
131 ));
131 ));
132
132
133 var initialState = states.DefineSymbol(m_firstpos);
133 var initialState = states.DefineSymbol(m_firstpos);
134 dfa.SetInitialState(initialState);
134 dfa.SetInitialState(initialState);
135
135
136 var tags = GetStateTags(m_firstpos);
136 var tags = GetStateTags(m_firstpos);
137 if (tags != null && tags.Length > 0)
137 if (tags != null && tags.Length > 0)
138 dfa.MarkFinalState(initialState, tags);
138 dfa.MarkFinalState(initialState, tags);
139
139
140 var inputMax = m_indexes.Values.Max();
140 var inputMax = m_indexes.Values.Max();
141 var queue = new Queue<HashSet<int>>();
141 var queue = new Queue<HashSet<int>>();
142
142
143 queue.Enqueue(m_firstpos);
143 queue.Enqueue(m_firstpos);
144
144
145 while (queue.Count > 0) {
145 while (queue.Count > 0) {
146 var state = queue.Dequeue();
146 var state = queue.Dequeue();
147 var s1 = states.Translate(state);
147 var s1 = states.Translate(state);
148 Debug.Assert(s1 != DFAConst.UNCLASSIFIED_INPUT);
148 Debug.Assert(s1 != DFAConst.UNCLASSIFIED_INPUT);
149
149
150 for (int a = 0; a <= inputMax; a++) {
150 for (int a = 0; a <= inputMax; a++) {
151 var next = new HashSet<int>();
151 var next = new HashSet<int>();
152 foreach (var p in state) {
152 foreach (var p in state) {
153 if (m_indexes[p] == a) {
153 if (m_indexes[p] == a) {
154 next.UnionWith(Followpos(p));
154 next.UnionWith(Followpos(p));
155 }
155 }
156 }
156 }
157 if (next.Count > 0) {
157 if (next.Count > 0) {
158 int s2 = states.Translate(next);
158 int s2 = states.Translate(next);
159 if (s2 == DFAConst.UNCLASSIFIED_INPUT) {
159 if (s2 == DFAConst.UNCLASSIFIED_INPUT) {
160 s2 = states.DefineSymbol(next);
160 s2 = states.DefineSymbol(next);
161
161
162 tags = GetStateTags(next);
162 tags = GetStateTags(next);
163 if (tags != null && tags.Length > 0)
163 if (tags != null && tags.Length > 0)
164 dfa.MarkFinalState(s2, tags);
164 dfa.MarkFinalState(s2, tags);
165
165
166 queue.Enqueue(next);
166 queue.Enqueue(next);
167 }
167 }
168 dfa.DefineTransition(s1, s2, a);
168 dfa.Add(new AutomatonTransition(s1, s2, a));
169 }
169 }
170 }
170 }
171 }
171 }
172 }
172 }
173
173
174 TTag[] GetStateTags(IEnumerable<int> state) {
174 TTag[] GetStateTags(IEnumerable<int> state) {
175 Debug.Assert(state != null);
175 Debug.Assert(state != null);
176 return state.Where(m_ends.ContainsKey).Select(pos => m_ends[pos]).ToArray();
176 return state.Where(m_ends.ContainsKey).Select(pos => m_ends[pos]).ToArray();
177 }
177 }
178
178
179 }
179 }
180 }
180 }
@@ -1,43 +1,69
1 using System;
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
2
4
3 namespace Implab.Automaton.RegularExpressions {
5 namespace Implab.Automaton.RegularExpressions {
4 public class RegularDFADefinition<TInput, TTag> : DFATable {
6 public class RegularDFADefinition<TInput, TTag> : DFATable {
5
7
8 readonly Dictionary<int,TTag[]> m_tags = new Dictionary<int, TTag[]>();
6 readonly IAlphabet<TInput> m_alphabet;
9 readonly IAlphabet<TInput> m_alphabet;
7
10
8 public RegularDFADefinition(IAlphabet<TInput> alphabet) {
11 public RegularDFADefinition(IAlphabet<TInput> alphabet) {
9 Safe.ArgumentNotNull(alphabet, "aplhabet");
12 Safe.ArgumentNotNull(alphabet, "aplhabet");
10
13
11 m_alphabet = alphabet;
14 m_alphabet = alphabet;
12 }
15 }
13
16
14
17
15 public IAlphabet<TInput> InputAlphabet {
18 public IAlphabet<TInput> InputAlphabet {
16 get {
19 get {
17 return m_alphabet;
20 return m_alphabet;
18 }
21 }
19 }
22 }
20
23
21 protected override DFAStateDescriptior[] ConstructTransitionTable() {
24 protected override DFAStateDescriptior[] ConstructTransitionTable() {
22 if (InputAlphabet.Count != m_alphabet.Count)
25 if (InputAlphabet.Count != m_alphabet.Count)
23 throw new InvalidOperationException("The alphabet doesn't match the transition table");
26 throw new InvalidOperationException("The alphabet doesn't match the transition table");
24
27
25 return base.ConstructTransitionTable();
28 return base.ConstructTransitionTable();
26 }
29 }
27
30
31 public void MarkFinalState(int s, TTag[] tags) {
32 MarkFinalState(s);
33 SetStateTag(s, tags);
34 }
35
36 public void SetStateTag(int s, TTag[] tags) {
37 Safe.ArgumentNotNull(tags, "tags");
38 m_tags[s] = tags;
39 }
40
41 public TTag[] GetStateTag(int s) {
42 TTag[] tags;
43 return m_tags.TryGetValue(s, out tags) ? tags : new TTag[0];
44 }
45
28 /// <summary>
46 /// <summary>
29 /// Optimize the specified alphabet.
47 /// Optimize the specified alphabet.
30 /// </summary>
48 /// </summary>
31 /// <param name = "dfaTable"></param>
32 /// <param name="alphabet">Пустой алфавит, который будет зполнен в процессе оптимизации.</param>
49 /// <param name="alphabet">Пустой алфавит, который будет зполнен в процессе оптимизации.</param>
33 public void Optimize(IDFATableBuilder<TTag> dfaTable, IAlphabetBuilder<TInput> alphabet) {
50 public RegularDFADefinition<TInput,TTag> Optimize(IAlphabetBuilder<TInput> alphabet) {
34 Safe.ArgumentNotNull(alphabet, "alphabet");
51 Safe.ArgumentNotNull(alphabet, "alphabet");
35 Safe.ArgumentNotNull(dfaTable, "dfaTable");
52
53 var dfaTable = new RegularDFADefinition<TInput, TTag>(alphabet);
54
55 var states = new DummyAlphabet(StateCount);
56 var map = new MapAlphabet<int>();
36
57
37 Optimize(dfaTable, InputAlphabet, alphabet, new DummyAlphabet(StateCount), new MapAlphabet<int>());
58 Optimize(dfaTable, InputAlphabet, alphabet, states, map);
59
60 foreach (var g in m_tags.Where(x => x.Key < StateCount).GroupBy(x => map.Translate(x.Key), x => x.Value ))
61 dfaTable.SetStateTag(g.Key, g.SelectMany(x => x).ToArray());
62
63 return dfaTable;
38 }
64 }
39
65
40
66
41 }
67 }
42 }
68 }
43
69
@@ -1,272 +1,271
1 <?xml version="1.0" encoding="utf-8"?>
1 <?xml version="1.0" encoding="utf-8"?>
2 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <PropertyGroup>
3 <PropertyGroup>
4 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
4 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
5 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6 <ProjectGuid>{F550F1F8-8746-4AD0-9614-855F4C4B7F05}</ProjectGuid>
6 <ProjectGuid>{F550F1F8-8746-4AD0-9614-855F4C4B7F05}</ProjectGuid>
7 <OutputType>Library</OutputType>
7 <OutputType>Library</OutputType>
8 <RootNamespace>Implab</RootNamespace>
8 <RootNamespace>Implab</RootNamespace>
9 <AssemblyName>Implab</AssemblyName>
9 <AssemblyName>Implab</AssemblyName>
10 <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
10 <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
11 <ReleaseVersion>0.2</ReleaseVersion>
11 <ReleaseVersion>0.2</ReleaseVersion>
12 <ProductVersion>8.0.30703</ProductVersion>
12 <ProductVersion>8.0.30703</ProductVersion>
13 <SchemaVersion>2.0</SchemaVersion>
13 <SchemaVersion>2.0</SchemaVersion>
14 </PropertyGroup>
14 </PropertyGroup>
15 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
15 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16 <DebugSymbols>true</DebugSymbols>
16 <DebugSymbols>true</DebugSymbols>
17 <DebugType>full</DebugType>
17 <DebugType>full</DebugType>
18 <Optimize>false</Optimize>
18 <Optimize>false</Optimize>
19 <OutputPath>bin\Debug</OutputPath>
19 <OutputPath>bin\Debug</OutputPath>
20 <DefineConstants>TRACE;DEBUG;</DefineConstants>
20 <DefineConstants>TRACE;DEBUG;</DefineConstants>
21 <ErrorReport>prompt</ErrorReport>
21 <ErrorReport>prompt</ErrorReport>
22 <WarningLevel>4</WarningLevel>
22 <WarningLevel>4</WarningLevel>
23 <ConsolePause>false</ConsolePause>
23 <ConsolePause>false</ConsolePause>
24 <RunCodeAnalysis>true</RunCodeAnalysis>
24 <RunCodeAnalysis>true</RunCodeAnalysis>
25 </PropertyGroup>
25 </PropertyGroup>
26 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
26 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
27 <DebugType>full</DebugType>
27 <DebugType>full</DebugType>
28 <Optimize>true</Optimize>
28 <Optimize>true</Optimize>
29 <OutputPath>bin\Release</OutputPath>
29 <OutputPath>bin\Release</OutputPath>
30 <ErrorReport>prompt</ErrorReport>
30 <ErrorReport>prompt</ErrorReport>
31 <WarningLevel>4</WarningLevel>
31 <WarningLevel>4</WarningLevel>
32 <ConsolePause>false</ConsolePause>
32 <ConsolePause>false</ConsolePause>
33 </PropertyGroup>
33 </PropertyGroup>
34 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug 4.5|AnyCPU' ">
34 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug 4.5|AnyCPU' ">
35 <DebugSymbols>true</DebugSymbols>
35 <DebugSymbols>true</DebugSymbols>
36 <DebugType>full</DebugType>
36 <DebugType>full</DebugType>
37 <Optimize>false</Optimize>
37 <Optimize>false</Optimize>
38 <OutputPath>bin\Debug</OutputPath>
38 <OutputPath>bin\Debug</OutputPath>
39 <DefineConstants>TRACE;DEBUG;NET_4_5</DefineConstants>
39 <DefineConstants>TRACE;DEBUG;NET_4_5</DefineConstants>
40 <ErrorReport>prompt</ErrorReport>
40 <ErrorReport>prompt</ErrorReport>
41 <WarningLevel>4</WarningLevel>
41 <WarningLevel>4</WarningLevel>
42 <RunCodeAnalysis>true</RunCodeAnalysis>
42 <RunCodeAnalysis>true</RunCodeAnalysis>
43 <ConsolePause>false</ConsolePause>
43 <ConsolePause>false</ConsolePause>
44 </PropertyGroup>
44 </PropertyGroup>
45 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release 4.5|AnyCPU' ">
45 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release 4.5|AnyCPU' ">
46 <Optimize>true</Optimize>
46 <Optimize>true</Optimize>
47 <OutputPath>bin\Release</OutputPath>
47 <OutputPath>bin\Release</OutputPath>
48 <ErrorReport>prompt</ErrorReport>
48 <ErrorReport>prompt</ErrorReport>
49 <WarningLevel>4</WarningLevel>
49 <WarningLevel>4</WarningLevel>
50 <ConsolePause>false</ConsolePause>
50 <ConsolePause>false</ConsolePause>
51 <DefineConstants>NET_4_5</DefineConstants>
51 <DefineConstants>NET_4_5</DefineConstants>
52 </PropertyGroup>
52 </PropertyGroup>
53 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMono|AnyCPU' ">
53 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMono|AnyCPU' ">
54 <DebugSymbols>true</DebugSymbols>
54 <DebugSymbols>true</DebugSymbols>
55 <DebugType>full</DebugType>
55 <DebugType>full</DebugType>
56 <Optimize>false</Optimize>
56 <Optimize>false</Optimize>
57 <OutputPath>bin\Debug</OutputPath>
57 <OutputPath>bin\Debug</OutputPath>
58 <DefineConstants>TRACE;DEBUG;NET_4_5;MONO</DefineConstants>
58 <DefineConstants>TRACE;DEBUG;NET_4_5;MONO</DefineConstants>
59 <ErrorReport>prompt</ErrorReport>
59 <ErrorReport>prompt</ErrorReport>
60 <WarningLevel>4</WarningLevel>
60 <WarningLevel>4</WarningLevel>
61 <RunCodeAnalysis>true</RunCodeAnalysis>
61 <RunCodeAnalysis>true</RunCodeAnalysis>
62 <ConsolePause>false</ConsolePause>
62 <ConsolePause>false</ConsolePause>
63 </PropertyGroup>
63 </PropertyGroup>
64 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseMono|AnyCPU' ">
64 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseMono|AnyCPU' ">
65 <Optimize>true</Optimize>
65 <Optimize>true</Optimize>
66 <OutputPath>bin\Release</OutputPath>
66 <OutputPath>bin\Release</OutputPath>
67 <DefineConstants>NET_4_5;MONO;</DefineConstants>
67 <DefineConstants>NET_4_5;MONO;</DefineConstants>
68 <ErrorReport>prompt</ErrorReport>
68 <ErrorReport>prompt</ErrorReport>
69 <WarningLevel>4</WarningLevel>
69 <WarningLevel>4</WarningLevel>
70 <ConsolePause>false</ConsolePause>
70 <ConsolePause>false</ConsolePause>
71 </PropertyGroup>
71 </PropertyGroup>
72 <ItemGroup>
72 <ItemGroup>
73 <Reference Include="System" />
73 <Reference Include="System" />
74 <Reference Include="System.Xml" />
74 <Reference Include="System.Xml" />
75 <Reference Include="mscorlib" />
75 <Reference Include="mscorlib" />
76 </ItemGroup>
76 </ItemGroup>
77 <ItemGroup>
77 <ItemGroup>
78 <Compile Include="CustomEqualityComparer.cs" />
78 <Compile Include="CustomEqualityComparer.cs" />
79 <Compile Include="Diagnostics\ConsoleTraceListener.cs" />
79 <Compile Include="Diagnostics\ConsoleTraceListener.cs" />
80 <Compile Include="Diagnostics\EventText.cs" />
80 <Compile Include="Diagnostics\EventText.cs" />
81 <Compile Include="Diagnostics\LogChannel.cs" />
81 <Compile Include="Diagnostics\LogChannel.cs" />
82 <Compile Include="Diagnostics\LogicalOperation.cs" />
82 <Compile Include="Diagnostics\LogicalOperation.cs" />
83 <Compile Include="Diagnostics\TextFileListener.cs" />
83 <Compile Include="Diagnostics\TextFileListener.cs" />
84 <Compile Include="Diagnostics\TraceLog.cs" />
84 <Compile Include="Diagnostics\TraceLog.cs" />
85 <Compile Include="Diagnostics\TraceEvent.cs" />
85 <Compile Include="Diagnostics\TraceEvent.cs" />
86 <Compile Include="Diagnostics\TraceEventType.cs" />
86 <Compile Include="Diagnostics\TraceEventType.cs" />
87 <Compile Include="ICancellable.cs" />
87 <Compile Include="ICancellable.cs" />
88 <Compile Include="IProgressHandler.cs" />
88 <Compile Include="IProgressHandler.cs" />
89 <Compile Include="IProgressNotifier.cs" />
89 <Compile Include="IProgressNotifier.cs" />
90 <Compile Include="IPromiseT.cs" />
90 <Compile Include="IPromiseT.cs" />
91 <Compile Include="IPromise.cs" />
91 <Compile Include="IPromise.cs" />
92 <Compile Include="IServiceLocator.cs" />
92 <Compile Include="IServiceLocator.cs" />
93 <Compile Include="ITaskController.cs" />
93 <Compile Include="ITaskController.cs" />
94 <Compile Include="Parallels\DispatchPool.cs" />
94 <Compile Include="Parallels\DispatchPool.cs" />
95 <Compile Include="Parallels\ArrayTraits.cs" />
95 <Compile Include="Parallels\ArrayTraits.cs" />
96 <Compile Include="Parallels\MTQueue.cs" />
96 <Compile Include="Parallels\MTQueue.cs" />
97 <Compile Include="Parallels\WorkerPool.cs" />
97 <Compile Include="Parallels\WorkerPool.cs" />
98 <Compile Include="ProgressInitEventArgs.cs" />
98 <Compile Include="ProgressInitEventArgs.cs" />
99 <Compile Include="Properties\AssemblyInfo.cs" />
99 <Compile Include="Properties\AssemblyInfo.cs" />
100 <Compile Include="Parallels\AsyncPool.cs" />
100 <Compile Include="Parallels\AsyncPool.cs" />
101 <Compile Include="Safe.cs" />
101 <Compile Include="Safe.cs" />
102 <Compile Include="ValueEventArgs.cs" />
102 <Compile Include="ValueEventArgs.cs" />
103 <Compile Include="PromiseExtensions.cs" />
103 <Compile Include="PromiseExtensions.cs" />
104 <Compile Include="SyncContextPromise.cs" />
104 <Compile Include="SyncContextPromise.cs" />
105 <Compile Include="Diagnostics\OperationContext.cs" />
105 <Compile Include="Diagnostics\OperationContext.cs" />
106 <Compile Include="Diagnostics\TraceContext.cs" />
106 <Compile Include="Diagnostics\TraceContext.cs" />
107 <Compile Include="Diagnostics\LogEventArgs.cs" />
107 <Compile Include="Diagnostics\LogEventArgs.cs" />
108 <Compile Include="Diagnostics\LogEventArgsT.cs" />
108 <Compile Include="Diagnostics\LogEventArgsT.cs" />
109 <Compile Include="Diagnostics\Extensions.cs" />
109 <Compile Include="Diagnostics\Extensions.cs" />
110 <Compile Include="PromiseEventType.cs" />
110 <Compile Include="PromiseEventType.cs" />
111 <Compile Include="Parallels\AsyncQueue.cs" />
111 <Compile Include="Parallels\AsyncQueue.cs" />
112 <Compile Include="PromiseT.cs" />
112 <Compile Include="PromiseT.cs" />
113 <Compile Include="IDeferred.cs" />
113 <Compile Include="IDeferred.cs" />
114 <Compile Include="IDeferredT.cs" />
114 <Compile Include="IDeferredT.cs" />
115 <Compile Include="Promise.cs" />
115 <Compile Include="Promise.cs" />
116 <Compile Include="PromiseTransientException.cs" />
116 <Compile Include="PromiseTransientException.cs" />
117 <Compile Include="Parallels\Signal.cs" />
117 <Compile Include="Parallels\Signal.cs" />
118 <Compile Include="Parallels\SharedLock.cs" />
118 <Compile Include="Parallels\SharedLock.cs" />
119 <Compile Include="Diagnostics\ILogWriter.cs" />
119 <Compile Include="Diagnostics\ILogWriter.cs" />
120 <Compile Include="Diagnostics\ListenerBase.cs" />
120 <Compile Include="Diagnostics\ListenerBase.cs" />
121 <Compile Include="Parallels\BlockingQueue.cs" />
121 <Compile Include="Parallels\BlockingQueue.cs" />
122 <Compile Include="AbstractEvent.cs" />
122 <Compile Include="AbstractEvent.cs" />
123 <Compile Include="AbstractPromise.cs" />
123 <Compile Include="AbstractPromise.cs" />
124 <Compile Include="AbstractPromiseT.cs" />
124 <Compile Include="AbstractPromiseT.cs" />
125 <Compile Include="FuncTask.cs" />
125 <Compile Include="FuncTask.cs" />
126 <Compile Include="FuncTaskBase.cs" />
126 <Compile Include="FuncTaskBase.cs" />
127 <Compile Include="FuncTaskT.cs" />
127 <Compile Include="FuncTaskT.cs" />
128 <Compile Include="ActionChainTaskBase.cs" />
128 <Compile Include="ActionChainTaskBase.cs" />
129 <Compile Include="ActionChainTask.cs" />
129 <Compile Include="ActionChainTask.cs" />
130 <Compile Include="ActionChainTaskT.cs" />
130 <Compile Include="ActionChainTaskT.cs" />
131 <Compile Include="FuncChainTaskBase.cs" />
131 <Compile Include="FuncChainTaskBase.cs" />
132 <Compile Include="FuncChainTask.cs" />
132 <Compile Include="FuncChainTask.cs" />
133 <Compile Include="FuncChainTaskT.cs" />
133 <Compile Include="FuncChainTaskT.cs" />
134 <Compile Include="ActionTaskBase.cs" />
134 <Compile Include="ActionTaskBase.cs" />
135 <Compile Include="ActionTask.cs" />
135 <Compile Include="ActionTask.cs" />
136 <Compile Include="ActionTaskT.cs" />
136 <Compile Include="ActionTaskT.cs" />
137 <Compile Include="ICancellationToken.cs" />
137 <Compile Include="ICancellationToken.cs" />
138 <Compile Include="SuccessPromise.cs" />
138 <Compile Include="SuccessPromise.cs" />
139 <Compile Include="SuccessPromiseT.cs" />
139 <Compile Include="SuccessPromiseT.cs" />
140 <Compile Include="PromiseAwaiterT.cs" />
140 <Compile Include="PromiseAwaiterT.cs" />
141 <Compile Include="PromiseAwaiter.cs" />
141 <Compile Include="PromiseAwaiter.cs" />
142 <Compile Include="Components\ComponentContainer.cs" />
142 <Compile Include="Components\ComponentContainer.cs" />
143 <Compile Include="Components\Disposable.cs" />
143 <Compile Include="Components\Disposable.cs" />
144 <Compile Include="Components\DisposablePool.cs" />
144 <Compile Include="Components\DisposablePool.cs" />
145 <Compile Include="Components\ObjectPool.cs" />
145 <Compile Include="Components\ObjectPool.cs" />
146 <Compile Include="Components\ServiceLocator.cs" />
146 <Compile Include="Components\ServiceLocator.cs" />
147 <Compile Include="Components\IInitializable.cs" />
147 <Compile Include="Components\IInitializable.cs" />
148 <Compile Include="TaskController.cs" />
148 <Compile Include="TaskController.cs" />
149 <Compile Include="Components\App.cs" />
149 <Compile Include="Components\App.cs" />
150 <Compile Include="Components\IRunnable.cs" />
150 <Compile Include="Components\IRunnable.cs" />
151 <Compile Include="Components\ExecutionState.cs" />
151 <Compile Include="Components\ExecutionState.cs" />
152 <Compile Include="Components\RunnableComponent.cs" />
152 <Compile Include="Components\RunnableComponent.cs" />
153 <Compile Include="Components\IFactory.cs" />
153 <Compile Include="Components\IFactory.cs" />
154 <Compile Include="Automaton\DFAStateDescriptor.cs" />
154 <Compile Include="Automaton\DFAStateDescriptor.cs" />
155 <Compile Include="Automaton\EnumAlphabet.cs" />
155 <Compile Include="Automaton\EnumAlphabet.cs" />
156 <Compile Include="Automaton\IAlphabet.cs" />
156 <Compile Include="Automaton\IAlphabet.cs" />
157 <Compile Include="Automaton\ParserException.cs" />
157 <Compile Include="Automaton\ParserException.cs" />
158 <Compile Include="Automaton\Scanner.cs" />
158 <Compile Include="Automaton\Scanner.cs" />
159 <Compile Include="Automaton\IndexedAlphabetBase.cs" />
159 <Compile Include="Automaton\IndexedAlphabetBase.cs" />
160 <Compile Include="Automaton\IAlphabetBuilder.cs" />
160 <Compile Include="Automaton\IAlphabetBuilder.cs" />
161 <Compile Include="Automaton\RegularExpressions\AltToken.cs" />
161 <Compile Include="Automaton\RegularExpressions\AltToken.cs" />
162 <Compile Include="Automaton\RegularExpressions\BinaryToken.cs" />
162 <Compile Include="Automaton\RegularExpressions\BinaryToken.cs" />
163 <Compile Include="Automaton\RegularExpressions\CatToken.cs" />
163 <Compile Include="Automaton\RegularExpressions\CatToken.cs" />
164 <Compile Include="Automaton\DFAConst.cs" />
164 <Compile Include="Automaton\DFAConst.cs" />
165 <Compile Include="Automaton\RegularExpressions\Grammar.cs" />
165 <Compile Include="Automaton\RegularExpressions\Grammar.cs" />
166 <Compile Include="Automaton\RegularExpressions\StarToken.cs" />
166 <Compile Include="Automaton\RegularExpressions\StarToken.cs" />
167 <Compile Include="Automaton\RegularExpressions\SymbolToken.cs" />
167 <Compile Include="Automaton\RegularExpressions\SymbolToken.cs" />
168 <Compile Include="Automaton\RegularExpressions\EmptyToken.cs" />
168 <Compile Include="Automaton\RegularExpressions\EmptyToken.cs" />
169 <Compile Include="Automaton\RegularExpressions\EndToken.cs" />
169 <Compile Include="Automaton\RegularExpressions\EndToken.cs" />
170 <Compile Include="Automaton\RegularExpressions\Token.cs" />
170 <Compile Include="Automaton\RegularExpressions\Token.cs" />
171 <Compile Include="Automaton\RegularExpressions\IVisitor.cs" />
171 <Compile Include="Automaton\RegularExpressions\IVisitor.cs" />
172 <Compile Include="Automaton\AutomatonTransition.cs" />
172 <Compile Include="Automaton\AutomatonTransition.cs" />
173 <Compile Include="Automaton\RegularExpressions\RegularDFABuilder.cs" />
173 <Compile Include="Automaton\RegularExpressions\RegularDFABuilder.cs" />
174 <Compile Include="Formats\JSON\JSONElementContext.cs" />
174 <Compile Include="Formats\JSON\JSONElementContext.cs" />
175 <Compile Include="Formats\JSON\JSONElementType.cs" />
175 <Compile Include="Formats\JSON\JSONElementType.cs" />
176 <Compile Include="Formats\JSON\JSONGrammar.cs" />
176 <Compile Include="Formats\JSON\JSONGrammar.cs" />
177 <Compile Include="Formats\JSON\JSONParser.cs" />
177 <Compile Include="Formats\JSON\JSONParser.cs" />
178 <Compile Include="Formats\JSON\JSONScanner.cs" />
178 <Compile Include="Formats\JSON\JSONScanner.cs" />
179 <Compile Include="Formats\JSON\JsonTokenType.cs" />
179 <Compile Include="Formats\JSON\JsonTokenType.cs" />
180 <Compile Include="Formats\JSON\JSONWriter.cs" />
180 <Compile Include="Formats\JSON\JSONWriter.cs" />
181 <Compile Include="Formats\JSON\JSONXmlReader.cs" />
181 <Compile Include="Formats\JSON\JSONXmlReader.cs" />
182 <Compile Include="Formats\JSON\JSONXmlReaderOptions.cs" />
182 <Compile Include="Formats\JSON\JSONXmlReaderOptions.cs" />
183 <Compile Include="Formats\JSON\StringTranslator.cs" />
183 <Compile Include="Formats\JSON\StringTranslator.cs" />
184 <Compile Include="Automaton\MapAlphabet.cs" />
184 <Compile Include="Automaton\MapAlphabet.cs" />
185 <Compile Include="Automaton\DummyAlphabet.cs" />
185 <Compile Include="Automaton\DummyAlphabet.cs" />
186 <Compile Include="Automaton\RegularExpressions\RegularDFADefinition.cs" />
186 <Compile Include="Automaton\RegularExpressions\RegularDFADefinition.cs" />
187 <Compile Include="Formats\CharAlphabet.cs" />
187 <Compile Include="Formats\CharAlphabet.cs" />
188 <Compile Include="Formats\ByteAlphabet.cs" />
188 <Compile Include="Formats\ByteAlphabet.cs" />
189 <Compile Include="Formats\RegularCharDFADefinition.cs" />
189 <Compile Include="Formats\RegularCharDFADefinition.cs" />
190 <Compile Include="Automaton\IDFATable.cs" />
190 <Compile Include="Automaton\IDFATable.cs" />
191 <Compile Include="Automaton\IDFATableBuilder.cs" />
191 <Compile Include="Automaton\IDFATableBuilder.cs" />
192 <Compile Include="Automaton\DFATable.cs" />
192 <Compile Include="Automaton\DFATable.cs" />
193 <Compile Include="Automaton\RegularExpressions\IDFATable2.cs" />
194 </ItemGroup>
193 </ItemGroup>
195 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
194 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
196 <ItemGroup />
195 <ItemGroup />
197 <ProjectExtensions>
196 <ProjectExtensions>
198 <MonoDevelop>
197 <MonoDevelop>
199 <Properties>
198 <Properties>
200 <Policies>
199 <Policies>
201 <CSharpFormattingPolicy IndentSwitchBody="True" NamespaceBraceStyle="EndOfLine" ClassBraceStyle="EndOfLine" InterfaceBraceStyle="EndOfLine" StructBraceStyle="EndOfLine" EnumBraceStyle="EndOfLine" MethodBraceStyle="EndOfLine" ConstructorBraceStyle="EndOfLine" DestructorBraceStyle="EndOfLine" BeforeMethodDeclarationParentheses="False" BeforeMethodCallParentheses="False" BeforeConstructorDeclarationParentheses="False" NewLineBeforeConstructorInitializerColon="NewLine" NewLineAfterConstructorInitializerColon="SameLine" BeforeIndexerDeclarationBracket="False" BeforeDelegateDeclarationParentheses="False" NewParentheses="False" SpacesBeforeBrackets="False" inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp" />
200 <CSharpFormattingPolicy IndentSwitchBody="True" NamespaceBraceStyle="EndOfLine" ClassBraceStyle="EndOfLine" InterfaceBraceStyle="EndOfLine" StructBraceStyle="EndOfLine" EnumBraceStyle="EndOfLine" MethodBraceStyle="EndOfLine" ConstructorBraceStyle="EndOfLine" DestructorBraceStyle="EndOfLine" BeforeMethodDeclarationParentheses="False" BeforeMethodCallParentheses="False" BeforeConstructorDeclarationParentheses="False" NewLineBeforeConstructorInitializerColon="NewLine" NewLineAfterConstructorInitializerColon="SameLine" BeforeIndexerDeclarationBracket="False" BeforeDelegateDeclarationParentheses="False" NewParentheses="False" SpacesBeforeBrackets="False" inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp" />
202 <TextStylePolicy FileWidth="120" EolMarker="Unix" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/x-csharp" />
201 <TextStylePolicy FileWidth="120" EolMarker="Unix" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/x-csharp" />
203 <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" />
202 <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" />
204 <TextStylePolicy FileWidth="120" TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="application/xml" />
203 <TextStylePolicy FileWidth="120" TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="application/xml" />
205 <XmlFormattingPolicy inheritsSet="Mono" inheritsScope="application/xml" scope="application/xml" />
204 <XmlFormattingPolicy inheritsSet="Mono" inheritsScope="application/xml" scope="application/xml" />
206 <TextStylePolicy FileWidth="120" TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
205 <TextStylePolicy FileWidth="120" TabsToSpaces="False" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
207 <NameConventionPolicy>
206 <NameConventionPolicy>
208 <Rules>
207 <Rules>
209 <NamingRule Name="Namespaces" AffectedEntity="Namespace" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
208 <NamingRule Name="Namespaces" AffectedEntity="Namespace" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
210 <NamingRule Name="Types" AffectedEntity="Class, Struct, Enum, Delegate" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
209 <NamingRule Name="Types" AffectedEntity="Class, Struct, Enum, Delegate" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
211 <NamingRule Name="Interfaces" AffectedEntity="Interface" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
210 <NamingRule Name="Interfaces" AffectedEntity="Interface" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
212 <RequiredPrefixes>
211 <RequiredPrefixes>
213 <String>I</String>
212 <String>I</String>
214 </RequiredPrefixes>
213 </RequiredPrefixes>
215 </NamingRule>
214 </NamingRule>
216 <NamingRule Name="Attributes" AffectedEntity="CustomAttributes" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
215 <NamingRule Name="Attributes" AffectedEntity="CustomAttributes" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
217 <RequiredSuffixes>
216 <RequiredSuffixes>
218 <String>Attribute</String>
217 <String>Attribute</String>
219 </RequiredSuffixes>
218 </RequiredSuffixes>
220 </NamingRule>
219 </NamingRule>
221 <NamingRule Name="Event Arguments" AffectedEntity="CustomEventArgs" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
220 <NamingRule Name="Event Arguments" AffectedEntity="CustomEventArgs" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
222 <RequiredSuffixes>
221 <RequiredSuffixes>
223 <String>EventArgs</String>
222 <String>EventArgs</String>
224 </RequiredSuffixes>
223 </RequiredSuffixes>
225 </NamingRule>
224 </NamingRule>
226 <NamingRule Name="Exceptions" AffectedEntity="CustomExceptions" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
225 <NamingRule Name="Exceptions" AffectedEntity="CustomExceptions" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
227 <RequiredSuffixes>
226 <RequiredSuffixes>
228 <String>Exception</String>
227 <String>Exception</String>
229 </RequiredSuffixes>
228 </RequiredSuffixes>
230 </NamingRule>
229 </NamingRule>
231 <NamingRule Name="Methods" AffectedEntity="Methods" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
230 <NamingRule Name="Methods" AffectedEntity="Methods" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
232 <NamingRule Name="Static Readonly Fields" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
231 <NamingRule Name="Static Readonly Fields" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Protected, Public" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True" />
233 <NamingRule Name="Fields (Non Private)" AffectedEntity="Field" VisibilityMask="Internal, Public" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
232 <NamingRule Name="Fields (Non Private)" AffectedEntity="Field" VisibilityMask="Internal, Public" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
234 <NamingRule Name="ReadOnly Fields (Non Private)" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Public" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False" />
233 <NamingRule Name="ReadOnly Fields (Non Private)" AffectedEntity="ReadonlyField" VisibilityMask="Internal, Public" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False" />
235 <NamingRule Name="Fields (Private)" AffectedEntity="Field, ReadonlyField" VisibilityMask="Private, Protected" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
234 <NamingRule Name="Fields (Private)" AffectedEntity="Field, ReadonlyField" VisibilityMask="Private, Protected" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
236 <RequiredPrefixes>
235 <RequiredPrefixes>
237 <String>m_</String>
236 <String>m_</String>
238 </RequiredPrefixes>
237 </RequiredPrefixes>
239 </NamingRule>
238 </NamingRule>
240 <NamingRule Name="Static Fields (Private)" AffectedEntity="Field" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True">
239 <NamingRule Name="Static Fields (Private)" AffectedEntity="Field" VisibilityMask="Private" NamingStyle="CamelCase" IncludeInstanceMembers="False" IncludeStaticEntities="True">
241 <RequiredPrefixes>
240 <RequiredPrefixes>
242 <String>_</String>
241 <String>_</String>
243 </RequiredPrefixes>
242 </RequiredPrefixes>
244 </NamingRule>
243 </NamingRule>
245 <NamingRule Name="ReadOnly Fields (Private)" AffectedEntity="ReadonlyField" VisibilityMask="Private, Protected" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
244 <NamingRule Name="ReadOnly Fields (Private)" AffectedEntity="ReadonlyField" VisibilityMask="Private, Protected" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="False">
246 <RequiredPrefixes>
245 <RequiredPrefixes>
247 <String>m_</String>
246 <String>m_</String>
248 </RequiredPrefixes>
247 </RequiredPrefixes>
249 </NamingRule>
248 </NamingRule>
250 <NamingRule Name="Constant Fields" AffectedEntity="ConstantField" VisibilityMask="VisibilityMask" NamingStyle="AllUpper" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
249 <NamingRule Name="Constant Fields" AffectedEntity="ConstantField" VisibilityMask="VisibilityMask" NamingStyle="AllUpper" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
251 <NamingRule Name="Properties" AffectedEntity="Property" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
250 <NamingRule Name="Properties" AffectedEntity="Property" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
252 <NamingRule Name="Events" AffectedEntity="Event" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
251 <NamingRule Name="Events" AffectedEntity="Event" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
253 <NamingRule Name="Enum Members" AffectedEntity="EnumMember" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
252 <NamingRule Name="Enum Members" AffectedEntity="EnumMember" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
254 <NamingRule Name="Parameters" AffectedEntity="Parameter, LocalVariable" VisibilityMask="VisibilityMask" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
253 <NamingRule Name="Parameters" AffectedEntity="Parameter, LocalVariable" VisibilityMask="VisibilityMask" NamingStyle="CamelCase" IncludeInstanceMembers="True" IncludeStaticEntities="True" />
255 <NamingRule Name="Type Parameters" AffectedEntity="TypeParameter" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
254 <NamingRule Name="Type Parameters" AffectedEntity="TypeParameter" VisibilityMask="VisibilityMask" NamingStyle="PascalCase" IncludeInstanceMembers="True" IncludeStaticEntities="True">
256 <RequiredPrefixes>
255 <RequiredPrefixes>
257 <String>T</String>
256 <String>T</String>
258 </RequiredPrefixes>
257 </RequiredPrefixes>
259 </NamingRule>
258 </NamingRule>
260 </Rules>
259 </Rules>
261 </NameConventionPolicy>
260 </NameConventionPolicy>
262 </Policies>
261 </Policies>
263 </Properties>
262 </Properties>
264 </MonoDevelop>
263 </MonoDevelop>
265 </ProjectExtensions>
264 </ProjectExtensions>
266 <ItemGroup>
265 <ItemGroup>
267 <Folder Include="Components\" />
266 <Folder Include="Components\" />
268 <Folder Include="Automaton\RegularExpressions\" />
267 <Folder Include="Automaton\RegularExpressions\" />
269 <Folder Include="Formats\" />
268 <Folder Include="Formats\" />
270 <Folder Include="Formats\JSON\" />
269 <Folder Include="Formats\JSON\" />
271 </ItemGroup>
270 </ItemGroup>
272 </Project> No newline at end of file
271 </Project>
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now