NTP Analyzer
0.8.2
Analyze the operation of time servers
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
ConfigBuilder.cs
Go to the documentation of this file.
1
//
2
// Copyright (c) 2013-2017 Carsten Sonne Larsen <cs@innolan.net>
3
//
4
// Permission is hereby granted, free of charge, to any person obtaining a copy
5
// of this software and associated documentation files (the "Software"), to deal
6
// in the Software without restriction, including without limitation the rights
7
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
// copies of the Software, and to permit persons to whom the Software is
9
// furnished to do so, subject to the following conditions:
10
//
11
// The above copyright notice and this permission notice shall be included in
12
// all copies or substantial portions of the Software.
13
//
14
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
// THE SOFTWARE.
21
22
using
System
.Collections.Generic;
23
using
Ntp
.
Analyzer
.
Config
.
Compiler
;
24
using
Ntp
.
Analyzer
.
Config
.
Node
;
25
using
Ntp
.
Analyzer
.
Config
.
Syntax
;
26
using
Ntp
.
Analyzer
.
Config
.
Table
;
27
28
namespace
Ntp
.Analyzer.Config
29
{
30
public
sealed
class
ConfigBuilder
31
{
32
public
ConfigBuilder
(
string
file)
33
{
34
this.file = file;
35
errors =
new
List<string>();
36
}
37
38
private
readonly List<string>
errors
;
39
40
private
readonly
string
file
;
41
42
public
IEnumerable<string> Errors => errors;
43
44
public
Configuration
Execute
()
45
{
46
SymbolTable
table =
new
SymbolTable
();
47
ISyntaxNode
node =
new
RootSyntaxNode
();
48
49
var stages =
new
List<ICompilerStage>
50
{
51
new
ConfigParser
(file, node),
52
new
SchematicValidator
(node),
53
new
SymbolResolver
(node),
54
new
ConfigCompiler
(node)
55
};
56
57
foreach
(var stage
in
stages)
58
{
59
if
(errors.Count != 0)
60
continue
;
61
62
stage.
SymbolTable
= table;
63
stage.Execute();
64
errors.AddRange(stage.Errors);
65
}
66
67
return
errors.Count == 0
68
? node.CompiledNode as
Configuration
69
: null;
70
}
71
}
72
}
Ntp.Analyzer.Config
Ntp.Analyzer.Config.ConfigBuilder
Definition:
ConfigBuilder.cs:30
Ntp.Analyzer.Config.Syntax
Definition:
AboutPageSyntaxNode.cs:30
Ntp.Analyzer.Config.ConfigBuilder.file
readonly string file
Definition:
ConfigBuilder.cs:40
Ntp.Analyzer.Config.Compiler.ConfigCompiler
The config compiler transforms syntax nodes into configurations and assemble all missing links...
Definition:
ConfigCompiler.cs:32
Ntp.Analyzer.Config.Compiler.SymbolResolver
Definition:
SymbolResolver.cs:28
Ntp.Analyzer.Config.Compiler
Definition:
ConfigCompiler.cs:26
Ntp.Analyzer.Config.ConfigBuilder.Execute
Configuration Execute()
Definition:
ConfigBuilder.cs:44
Ntp.Analyzer.Config.ConfigBuilder.ConfigBuilder
ConfigBuilder(string file)
Definition:
ConfigBuilder.cs:32
Ntp.Analyzer.Config.Syntax.RootSyntaxNode
Definition:
RootSyntaxNode.cs:29
Ntp.Analyzer.Config.Node.Configuration
Definition:
Configuration.cs:28
Ntp.Analyzer.Config.Table
Definition:
IntegerToken.cs:22
Ntp.Analyzer.Config.Compiler.SchematicValidator
Definition:
SchematicValidator.cs:28
Ntp.Analyzer.Config.Compiler.ConfigCompiler.SymbolTable
SymbolTable SymbolTable
Gets or sets the symbol table.
Definition:
ConfigCompiler.cs:50
Ntp
System
Ntp.Analyzer.Config.ConfigBuilder.errors
readonly List< string > errors
Definition:
ConfigBuilder.cs:38
Ntp.Analyzer.Config.Syntax.ISyntaxNode
Definition:
ISyntaxNode.cs:28
Ntp.Analyzer.Config.Table.SymbolTable
Definition:
SymbolTable.cs:27
Ntp.Analyzer.Config.Node
Definition:
ClusterConfiguration.cs:24
Ntp.Analyzer
Ntp.Analyzer.Config.Compiler.ConfigParser
The config parser transforms configuration texts into a syntax tree.
Definition:
ConfigParser.cs:35
Ntp.Analyzer
Config
ConfigBuilder.cs
Generated by
1.8.11