Class: Fluent::Config::BasicParser
- Inherits:
-
Object
- Object
- Fluent::Config::BasicParser
show all
- Extended by:
- ClassMethods
- Defined in:
- lib/fluent/config/basic_parser.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary
collapse
- LINE_END =
/(?:[ \t]*(?:\#.*)?(?:\z|[\r\n]))+/
- SPACING =
/(?:[ \t\r\n]|\z|\#.*?(?:\z|[\r\n]))+/
- ZERO_OR_MORE_SPACING =
/(?:[ \t\r\n]|\z|\#.*?(?:\z|[\r\n]))*/
/(?:[ \t\r\n]|\z)+/
- LINE_END_WITHOUT_SPACING_AND_COMMENT =
/(?:\z|[\r\n])/
Instance Method Summary
collapse
def_literal, def_symbol, symbol
Constructor Details
#initialize(strscan) ⇒ BasicParser
Returns a new instance of BasicParser.
23
24
25
|
# File 'lib/fluent/config/basic_parser.rb', line 23
def initialize(strscan)
@ss = strscan
end
|
Instance Method Details
#check(pattern) ⇒ Object
75
76
77
|
# File 'lib/fluent/config/basic_parser.rb', line 75
def check(pattern)
@ss.check(pattern)
end
|
#eof? ⇒ Boolean
67
68
69
|
# File 'lib/fluent/config/basic_parser.rb', line 67
def eof?
@ss.eos?
end
|
#error_sample ⇒ Object
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# File 'lib/fluent/config/basic_parser.rb', line 95
def error_sample
pos = @ss.pos
lines = @ss.string.lines.to_a
lines.each_with_index { |line, ln|
if line.size >= pos
msgs = ["line #{ln + 1},#{pos}\n"]
if ln > 0
last_line = lines[ln - 1]
msgs << "%3s: %s" % [ln, last_line]
end
msgs << "%3s: %s" % [ln + 1, line]
msgs << "\n #{'-' * pos}^\n"
if next_line = lines[ln + 1]
msgs << "%3s: %s" % [ln + 2, next_line]
end
return msgs.join
end
pos -= line.size
last_line = line
}
end
|
#getch ⇒ Object
63
64
65
|
# File 'lib/fluent/config/basic_parser.rb', line 63
def getch
@ss.getch
end
|
#line_end ⇒ Object
79
80
81
|
# File 'lib/fluent/config/basic_parser.rb', line 79
def line_end
skip(LINE_END)
end
|
#parse_error!(message) ⇒ Object
91
92
93
|
# File 'lib/fluent/config/basic_parser.rb', line 91
def parse_error!(message)
raise ConfigParseError, "#{message} at #{error_sample}"
end
|
#prev_match ⇒ Object
71
72
73
|
# File 'lib/fluent/config/basic_parser.rb', line 71
def prev_match
@ss[0]
end
|
#scan(pattern) ⇒ Object
59
60
61
|
# File 'lib/fluent/config/basic_parser.rb', line 59
def scan(pattern)
@ss.scan(pattern)
end
|
#skip(pattern) ⇒ Object
55
56
57
|
# File 'lib/fluent/config/basic_parser.rb', line 55
def skip(pattern)
@ss.skip(pattern)
end
|
#spacing ⇒ Object
83
84
85
|
# File 'lib/fluent/config/basic_parser.rb', line 83
def spacing
skip(SPACING)
end
|