File: //usr/local/rvm/gems/ruby-2.5.9/doc/mail-2.7.1/ri/lib/mail/parsers/page-received_parser_rl.ri
U:RDoc::TopLevel[ i I"(lib/mail/parsers/received_parser.rl:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;[I"require 'mail/utilities' ;TI" require 'mail/parser_tools';To:RDoc::Markup::BlankLine o; ;[I"%%{;To:RDoc::Markup::Verbatim;[1I"machine date_time;
;TI"alphtype int;
;TI"
;TI"# Received Tokens
;TI"8action received_tokens_s { received_tokens_s = p }
;TI"Vaction received_tokens_e { received.info = chars(data, received_tokens_s, p-1) }
;TI"
;TI"# Date
;TI""action date_s { date_s = p }
;TI"Faction date_e { received.date = chars(data, date_s, p-1).strip }
;TI"
;TI"# Time
;TI""action time_s { time_s = p }
;TI"@action time_e { received.time = chars(data, time_s, p-1) }
;TI"
;TI"# No-op actions
;TI"action address_s {}
;TI"action address_e {}
;TI"action angle_addr_s {}
;TI"action ctime_date_s {}
;TI"action ctime_date_e {}
;TI"action comment_e {}
;TI"action comment_s {}
;TI"action phrase_s {}
;TI"action phrase_e {}
;TI"action domain_e {}
;TI"action domain_s {}
;TI" action local_dot_atom_e {}
;TI",action local_dot_atom_pre_comment_e {}
;TI",action local_dot_atom_pre_comment_s {}
;TI" action local_dot_atom_s {}
;TI"action qstr_e {}
;TI"action qstr_s {}
;TI"%action local_quoted_string_s {}
;TI"%action local_quoted_string_e {}
;TI"!action obs_domain_list_s {}
;TI"!action obs_domain_list_e {}
;TI"action group_name_s {}
;TI"action group_name_e {}
;TI"action msg_id_s {}
;TI"action msg_id_e {}
;TI"
;TI"#include rfc5322 "rfc5322.rl";
;TI"main := received;
;T:@format0o; ;[I"}%%;T@o; ;[I"module Mail::Parsers;To;;[$I"module ReceivedParser
;TI" extend Mail::ParserTools
;TI"
;TI"@ ReceivedStruct = Struct.new(:date, :time, :info, :error)
;TI"
;TI" %%write data noprefix;
;TI"
;TI" def self.parse(data)
;TI"c data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
;TI"
;TI"R raise Mail::Field::NilParseError.new(Mail::ReceivedElement) if data.nil?
;TI"
;TI" # Parser state
;TI"' received = ReceivedStruct.new
;TI"3 received_tokens_s = date_s = time_s = nil
;TI"
;TI"' # 5.1 Variables Used by Ragel
;TI" p = 0
;TI" eof = pe = data.length
;TI" stack = []
;TI"
;TI" %%write init;
;TI" %%write exec;
;TI"
;TI"8 if p != eof || cs < %%{ write first_final; }%%
;TI"W raise Mail::Field::IncompleteParseError.new(Mail::ReceivedElement, data, p)
;TI"
end
;TI"
;TI" received
;TI" end
;TI" end
;T;0o; ;[I"end;T:
@file@:0@omit_headings_from_table_of_contents_below0