| Home | Trees | Indices | Help |
|---|
|
|
1 2 # The contents of this file are subject to the Mozilla Public License 3 # (MPL) Version 1.1 (the "License"); you may not use this file except 4 # in compliance with the License. You may obtain a copy of the License 5 # at http://www.mozilla.org/MPL/ 6 # 7 # Software distributed under the License is distributed on an "AS IS" 8 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 9 # the License for the specific language governing rights and 10 # limitations under the License. 11 # 12 # The Original Code is LEPL (http://www.acooke.org/lepl) 13 # The Initial Developer of the Original Code is Andrew Cooke. 14 # Portions created by the Initial Developer are Copyright (C) 2009-2010 15 # Andrew Cooke (andrew@acooke.org). All Rights Reserved. 16 # 17 # Alternatively, the contents of this file may be used under the terms 18 # of the LGPL license (the GNU Lesser General Public License, 19 # http://www.gnu.org/licenses/lgpl.html), in which case the provisions 20 # of the LGPL License are applicable instead of those above. 21 # 22 # If you wish to allow use of your version of this file only under the 23 # terms of the LGPL License and not to allow others to use your version 24 # of this file under the MPL, indicate your decision by deleting the 25 # provisions above and replace them with the notice and other provisions 26 # required by the LGPL License. If you do not delete the provisions 27 # above, a recipient may use your version of this file under either the 28 # MPL or the LGPL License. 29 30 ''' 31 Tests for a regexp bug. 32 ''' 33 34 # pylint: disable-msg=W0614, W0401, C0111, R0201 35 #@PydevCodeAnalysisIgnore 36 37 38 #from logging import basicConfig, DEBUG 39 from unittest import TestCase 40 41 from lepl import * 42 4345 46 # def test_limited_lookahead(self): 47 # ''' 48 # This stalls because Lookahead consumes nothing. Can we detect this 49 # case? 50 # ''' 51 # #basicConfig(level=DEBUG) 52 # 53 # item = Delayed() 54 # item += item[1:3] | ~Lookahead('x') 55 # 56 # expr = item[:2] & Drop(Eos()) 57 # expr.config.left_memoize() 58 # parser = expr.get_parse_string() 59 # print(parser.matcher.tree()) 60 # 61 # parser('abc') 62 63 # def test_plain_lookahead(self): 64 # ''' 65 # This stalls because Lookahead consumes nothing. Can we detect this 66 # case? 67 # ''' 68 # #basicConfig(level=DEBUG) 69 # 70 # item = Delayed() 71 # item += item[1:] | ~Lookahead('\\') 72 # 73 # expr = item & Drop(Eos()) 74 # expr.config.left_memoize() 75 # parser = expr.get_parse_string() 76 # print(parser.matcher.tree()) 77 # 78 # parser('abc') 799681 82 item = Delayed() 83 item += item[1:] 84 expr = item & Drop(Eos()) 85 86 expr.config.no_full_first_match() 87 parser = expr.get_parse_string() 88 try: 89 parser('abc') 90 assert False, 'expcted left recursion error' 91 except MemoException: 92 pass 93 expr.config.left_memoize() 94 parser = expr.get_parse_string() 95 parser('abc')
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Sun May 13 16:31:12 2012 | http://epydoc.sourceforge.net |