def parse_import_command
c = @ch
c = getch() while is_whitespace(c)
t = scan_string()
t == :string or raise parse_error("@import: requires filename.")
filename = @value
if @filename && !@filename.empty?
dir = File.dirname(@filename)
filename = dir + '/' + filename if dir != '.'
end
test(?f, filename) or raise parse_error("'#{filename}': import file not found.")
_linenum, _column = @linenum, @column
c = @ch
c = getch() while is_whitespace(c)
c == ?; or raise parse_error("';' required.")
c = getch()
scan()
parser = self.class.new(@properties)
begin
ruleset_list = parser.parse(File.read(filename), filename)
rescue => ex
parse_error(ex.message, _linenum, _column)
end
return ruleset_list
end