aboutsummaryrefslogtreecommitdiff
path: root/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'parser.rb')
-rw-r--r--[-rwxr-xr-x]parser.rb53
1 files changed, 24 insertions, 29 deletions
diff --git a/parser.rb b/parser.rb
index 4e261ba..08cc50c 100755..100644
--- a/parser.rb
+++ b/parser.rb
@@ -5,23 +5,23 @@ require "pp"
require "parslet"
include Parslet
-class EntryParser < Parslet::Parser
+class CassParser < Parslet::Parser
root :doc
### Type segments
- rule(:hour) { hour_.as(:hour) }
- rule(:minute) { minute_.as(:minute) }
- rule(:second) { second_.as(:second) }
+ # rule(:hour) { hour_.as(:hour) }
+ # rule(:minute) { minute_.as(:minute) }
+ # rule(:second) { second_.as(:second) }
- rule(:year) { year_.as(:year) }
- rule(:month) { month_.as(:month) }
- rule(:day) { day_.as(:day) }
+ # rule(:year) { year_.as(:year) }
+ # rule(:month) { month_.as(:month) }
+ # rule(:day) { day_.as(:day) }
- rule(:time) { time_.as(:time) }
- rule(:local) { local_.as(:local) }
- rule(:offset) { offset_.as(:offset) }
+ # rule(:time) { time_.as(:time) }
+ # rule(:local) { local_.as(:local) }
+ # rule(:offset) { offset_.as(:offset) }
- rule(:date) { date_.as(:date) }
+ # rule(:date) { date_.as(:date) }
rule(:datetime) { date >> str(" ") >> time }
rule(:daterange) { start >> str(" -") >> stop }
@@ -32,21 +32,21 @@ class EntryParser < Parslet::Parser
rule(:doc) { line_.repeat }
### Combinatory segments
- rule(:hour_) { digit.repeat(2, 2) }
- rule(:minute_) { digit.repeat(2, 2) }
- rule(:second_) { digit.repeat(2, 2) }
+ rule(:hour) { digit.repeat(2, 2) }
+ rule(:minute) { digit.repeat(2, 2) }
+ rule(:second) { digit.repeat(2, 2) }
- rule(:time_) { local >> offset }
- rule(:date_) { year >> str("-") >> month >> str("-") >> day }
+ rule(:time) { local >> offset }
+ rule(:date) { year >> str("-") >> month >> str("-") >> day }
- rule(:year_) { digit.repeat(4, 4) }
- rule(:month_) { digit.repeat(2, 2) }
- rule(:day_) { digit.repeat(2, 2) }
-
- rule(:local_) { hour >> str(":") >> minute >> str(":") >> second }
- rule(:offset_) { match("[zZ]") | tnoffset_ }
- rule(:poffset_) { str(" ") >> match("[+\-]") }
- rule(:tnoffset_) { poffset_ >> hour >> str(":").maybe >> minute }
+ rule(:year) { digit.repeat(4, 4) }
+ rule(:month) { digit.repeat(2, 2) }
+ rule(:day) { digit.repeat(2, 2) }
+
+ rule(:local) { hour >> str(":") >> minute >> str(":") >> second }
+ rule(:offset) { match("[zZ]") | tnoffset }
+ rule(:poffset) { str(" ") >> match("[+\-]") }
+ rule(:tnoffset) { poffset >> hour >> str(":").maybe >> minute }
rule(:title_) { text >> str(":") }
@@ -61,11 +61,6 @@ class EntryParser < Parslet::Parser
rule(:newline) { spaces.maybe >> str("\n") }
end
-PP.pp EntryParser.new.parse("
-# This is a comment
-Bobs Burger: 2019-07-21 21:00:00 +0200 -
-")
-
__END__
# Following is an example of what the `timebox` file format looks like