]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.messages.parser: simplify parser
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 9 May 2016 18:49:19 +0000 (11:49 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 9 May 2016 18:49:19 +0000 (11:49 -0700)
extra/irc/messages/parser/parser.factor

index 33964aef71bbc96b257934cc66cd06c455c33f19..829236cb16703bfb22157427b7a83409b9fbd68d 100644 (file)
@@ -9,20 +9,14 @@ IN: irc.messages.parser
 : split-at-first ( seq separators -- before after )
     dupd '[ _ member? ] find [ cut rest ] [ swap ] if ;
 
-: split-trailing ( string -- string string/f ) ":" split1 ;
-: remove-heading-: ( seq -- seq ) ":" ?head drop ;
-
-: split-prefix ( string -- string/f string )
-    dup ":" head? [
-        remove-heading-: " " split1
-    ] [ f swap ] if ;
-
+! ":ircuser!n=user@isp.net JOIN :#factortest"
 : split-message ( string -- prefix command parameters trailing )
-    split-prefix split-trailing
-    [ [ blank? ] trim " " split unclip swap ] dip ;
+    ":" ?head [ " " split1 ] [ f swap ] if
+    ":" split1
+    [ " " split harvest unclip swap ] dip ;
 
 : sender ( irc-message -- sender )
-    prefix>> [ remove-heading-: "!" split-at-first drop ] [ f ] if* ;
+    prefix>> [ ":" ?head drop "!" split-at-first drop ] [ f ] if* ;
 PRIVATE>
 
 : string>irc-message ( string -- irc-message )