From 7d0c32892dfbd48f5ac524446635262a86048c86 Mon Sep 17 00:00:00 2001
From: Igor Dejanovic <igor.dejanovic@gmail.com>
Date: Sun, 3 Aug 2014 20:00:46 +0200
Subject: [PATCH] Removed multiline flag.

---
 arpeggio/__init__.py     | 16 +++-------------
 arpeggio/peg.py          |  3 +--
 tests/unit/test_flags.py |  8 +-------
 3 files changed, 5 insertions(+), 22 deletions(-)

diff --git a/arpeggio/__init__.py b/arpeggio/__init__.py
index 397b163..5e6fef2 100644
--- a/arpeggio/__init__.py
+++ b/arpeggio/__init__.py
@@ -490,22 +490,17 @@ class RegExMatch(Match):
             It will be used to create regular expression using re.compile.
         ignore_case(bool): If case insensitive match is needed.
             Default is None to support propagation from global parser setting.
-        multiline(bool): If regex matching is in multiline mode.
-            Default is None to support propagation from global parser setting.
 
     '''
-    def __init__(self, to_match, rule=None, ignore_case=None, multiline=None):
+    def __init__(self, to_match, rule=None, ignore_case=None):
         super(RegExMatch, self).__init__(rule)
         self.to_match = to_match
         self.ignore_case = ignore_case
-        self.multiline = multiline
 
     def compile(self):
-        flags = 0
+        flags = re.MULTILINE
         if self.ignore_case:
             flags |= re.IGNORECASE
-        if self.multiline:
-            flags |= re.MULTILINE
         self.regex = re.compile(self.to_match, flags)
 
     def __str__(self):
@@ -790,20 +785,17 @@ class Parser(object):
         ws (str): A string consisting of whitespace characters.
         reduce_tree (bool): If true non-terminals with single child will be
             eliminated from the parse tree. Default is True.
-        multiline(bool): If RegExMatch is going to match in multiline mode
-            (default=False).
         ignore_case(bool): If case is ignored (default=False)
         debug (bool): If true debugging messages will be printed.
         comments_model: parser model for comments.
 
     """
     def __init__(self, skipws=True, ws=DEFAULT_WS, reduce_tree=False,
-                 debug=False, multiline=False, ignore_case=False):
+                 debug=False, ignore_case=False):
         self.skipws = skipws
         self.ws = ws
         self.reduce_tree = reduce_tree
         self.ignore_case = ignore_case
-        self.multiline = multiline
         self.debug = debug
         self.comments_model = None
         self.sem_actions = {}
@@ -1081,8 +1073,6 @@ class ParserPython(Parser):
                 # parser.
                 if expression.ignore_case is None:
                     expression.ignore_case = self.ignore_case
-                if expression.multiline is None:
-                    expression.multiline = self.multiline
                 expression.compile()
 
                 retval = expression
diff --git a/arpeggio/peg.py b/arpeggio/peg.py
index 5dc8832..f047aa7 100644
--- a/arpeggio/peg.py
+++ b/arpeggio/peg.py
@@ -193,8 +193,7 @@ class SemRuleCrossRef(SemanticAction):
 class SemRegEx(SemanticAction):
     def first_pass(self, parser, node, children):
         match = RegExMatch(children[0],
-                ignore_case=parser.ignore_case,
-                multiline=parser.multiline)
+                ignore_case=parser.ignore_case)
         match.compile()
         return match
 
diff --git a/tests/unit/test_flags.py b/tests/unit/test_flags.py
index d1749bc..94f7df8 100644
--- a/tests/unit/test_flags.py
+++ b/tests/unit/test_flags.py
@@ -15,11 +15,10 @@ from arpeggio import RegExMatch as _
 from arpeggio import NoMatch
 
 
-def foo():    return 'r', bar, baz, Optional(buz), Optional(ml), EOF
+def foo():    return 'r', bar, baz, Optional(buz), EOF
 def bar():      return 'BAR'
 def baz():      return _(r'1\w+')
 def buz():      return _(r'Aba*', ignore_case=True)
-def ml():       return _(r'//.*$', multiline=True)
 
 @pytest.fixture
 def parser_ci():
@@ -39,11 +38,6 @@ def test_parse_tree_nonci(parser_nonci):
     with pytest.raises(NoMatch):
         parser_nonci.parse(input_str)
 
-def test_parse_multiline(parser_ci):
-    input_str = """r bar 1baz //adfadsfadf asdfadsfadsf adfadf"""
-    parse_tree = parser_ci.parse(input_str)
-    assert parse_tree is not None
-
 def test_flags_override(parser_nonci):
     # Parser is not case insensitive
     # But the buz match is.
-- 
2.18.0