summaryrefslogtreecommitdiffstats
path: root/chall/ply-2.2/test
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2024-03-30 15:37:05 +0100
committerLouis Burda <quent.burda@gmail.com>2024-03-30 15:37:05 +0100
commit32309e019f2ff7d9f69f3e0016f67439e81b8b30 (patch)
treeace9fccd48489648b0586a8f84da21839632d0b9 /chall/ply-2.2/test
parent4007ea18f294aefb6128cbe82c5446cd8cb72c50 (diff)
downloadcscg24-lolpython-32309e019f2ff7d9f69f3e0016f67439e81b8b30.tar.gz
cscg24-lolpython-32309e019f2ff7d9f69f3e0016f67439e81b8b30.zip
Rename to solve
Diffstat (limited to 'chall/ply-2.2/test')
-rw-r--r--chall/ply-2.2/test/README11
-rw-r--r--chall/ply-2.2/test/calclex.py49
-rwxr-xr-xchall/ply-2.2/test/cleanup.sh4
-rw-r--r--chall/ply-2.2/test/lex_doc1.exp1
-rw-r--r--chall/ply-2.2/test/lex_doc1.py30
-rw-r--r--chall/ply-2.2/test/lex_dup1.exp2
-rw-r--r--chall/ply-2.2/test/lex_dup1.py29
-rw-r--r--chall/ply-2.2/test/lex_dup2.exp2
-rw-r--r--chall/ply-2.2/test/lex_dup2.py33
-rw-r--r--chall/ply-2.2/test/lex_dup3.exp2
-rw-r--r--chall/ply-2.2/test/lex_dup3.py31
-rw-r--r--chall/ply-2.2/test/lex_empty.exp1
-rw-r--r--chall/ply-2.2/test/lex_empty.py20
-rw-r--r--chall/ply-2.2/test/lex_error1.exp1
-rw-r--r--chall/ply-2.2/test/lex_error1.py24
-rw-r--r--chall/ply-2.2/test/lex_error2.exp1
-rw-r--r--chall/ply-2.2/test/lex_error2.py26
-rw-r--r--chall/ply-2.2/test/lex_error3.exp2
-rw-r--r--chall/ply-2.2/test/lex_error3.py27
-rw-r--r--chall/ply-2.2/test/lex_error4.exp2
-rw-r--r--chall/ply-2.2/test/lex_error4.py27
-rw-r--r--chall/ply-2.2/test/lex_hedit.exp3
-rw-r--r--chall/ply-2.2/test/lex_hedit.py47
-rw-r--r--chall/ply-2.2/test/lex_ignore.exp7
-rw-r--r--chall/ply-2.2/test/lex_ignore.py31
-rw-r--r--chall/ply-2.2/test/lex_nowarn.exp0
-rw-r--r--chall/ply-2.2/test/lex_nowarn.py30
-rw-r--r--chall/ply-2.2/test/lex_re1.exp7
-rw-r--r--chall/ply-2.2/test/lex_re1.py27
-rw-r--r--chall/ply-2.2/test/lex_re2.exp7
-rw-r--r--chall/ply-2.2/test/lex_re2.py27
-rw-r--r--chall/ply-2.2/test/lex_re3.exp8
-rw-r--r--chall/ply-2.2/test/lex_re3.py29
-rw-r--r--chall/ply-2.2/test/lex_rule1.exp2
-rw-r--r--chall/ply-2.2/test/lex_rule1.py27
-rw-r--r--chall/ply-2.2/test/lex_state1.exp7
-rw-r--r--chall/ply-2.2/test/lex_state1.py40
-rw-r--r--chall/ply-2.2/test/lex_state2.exp8
-rw-r--r--chall/ply-2.2/test/lex_state2.py40
-rw-r--r--chall/ply-2.2/test/lex_state3.exp8
-rw-r--r--chall/ply-2.2/test/lex_state3.py42
-rw-r--r--chall/ply-2.2/test/lex_state4.exp7
-rw-r--r--chall/ply-2.2/test/lex_state4.py41
-rw-r--r--chall/ply-2.2/test/lex_state5.exp7
-rw-r--r--chall/ply-2.2/test/lex_state5.py42
-rw-r--r--chall/ply-2.2/test/lex_state_noerror.exp1
-rw-r--r--chall/ply-2.2/test/lex_state_noerror.py41
-rw-r--r--chall/ply-2.2/test/lex_state_norule.exp7
-rw-r--r--chall/ply-2.2/test/lex_state_norule.py42
-rw-r--r--chall/ply-2.2/test/lex_state_try.exp7
-rw-r--r--chall/ply-2.2/test/lex_state_try.py48
-rw-r--r--chall/ply-2.2/test/lex_token1.exp1
-rw-r--r--chall/ply-2.2/test/lex_token1.py21
-rw-r--r--chall/ply-2.2/test/lex_token2.exp1
-rw-r--r--chall/ply-2.2/test/lex_token2.py23
-rw-r--r--chall/ply-2.2/test/lex_token3.exp2
-rw-r--r--chall/ply-2.2/test/lex_token3.py27
-rw-r--r--chall/ply-2.2/test/lex_token4.exp2
-rw-r--r--chall/ply-2.2/test/lex_token4.py28
-rw-r--r--chall/ply-2.2/test/lex_token5.exp1
-rw-r--r--chall/ply-2.2/test/lex_token5.py33
-rw-r--r--chall/ply-2.2/test/rununit.py62
-rwxr-xr-xchall/ply-2.2/test/testlex.py57
-rw-r--r--chall/ply-2.2/test/testyacc.py58
-rw-r--r--chall/ply-2.2/test/yacc_badargs.exp3
-rw-r--r--chall/ply-2.2/test/yacc_badargs.py68
-rw-r--r--chall/ply-2.2/test/yacc_badprec.exp1
-rw-r--r--chall/ply-2.2/test/yacc_badprec.py65
-rw-r--r--chall/ply-2.2/test/yacc_badprec2.exp3
-rw-r--r--chall/ply-2.2/test/yacc_badprec2.py69
-rw-r--r--chall/ply-2.2/test/yacc_badrule.exp5
-rw-r--r--chall/ply-2.2/test/yacc_badrule.py69
-rw-r--r--chall/ply-2.2/test/yacc_badtok.exp1
-rw-r--r--chall/ply-2.2/test/yacc_badtok.py70
-rw-r--r--chall/ply-2.2/test/yacc_dup.exp4
-rw-r--r--chall/ply-2.2/test/yacc_dup.py69
-rw-r--r--chall/ply-2.2/test/yacc_error1.exp1
-rw-r--r--chall/ply-2.2/test/yacc_error1.py69
-rw-r--r--chall/ply-2.2/test/yacc_error2.exp1
-rw-r--r--chall/ply-2.2/test/yacc_error2.py69
-rw-r--r--chall/ply-2.2/test/yacc_error3.exp1
-rw-r--r--chall/ply-2.2/test/yacc_error3.py68
-rw-r--r--chall/ply-2.2/test/yacc_inf.exp5
-rw-r--r--chall/ply-2.2/test/yacc_inf.py57
-rw-r--r--chall/ply-2.2/test/yacc_missing1.exp2
-rw-r--r--chall/ply-2.2/test/yacc_missing1.py69
-rw-r--r--chall/ply-2.2/test/yacc_nodoc.exp2
-rw-r--r--chall/ply-2.2/test/yacc_nodoc.py68
-rw-r--r--chall/ply-2.2/test/yacc_noerror.exp2
-rw-r--r--chall/ply-2.2/test/yacc_noerror.py67
-rw-r--r--chall/ply-2.2/test/yacc_nop.exp2
-rw-r--r--chall/ply-2.2/test/yacc_nop.py69
-rw-r--r--chall/ply-2.2/test/yacc_notfunc.exp4
-rw-r--r--chall/ply-2.2/test/yacc_notfunc.py67
-rw-r--r--chall/ply-2.2/test/yacc_notok.exp1
-rw-r--r--chall/ply-2.2/test/yacc_notok.py68
-rw-r--r--chall/ply-2.2/test/yacc_rr.exp2
-rw-r--r--chall/ply-2.2/test/yacc_rr.py73
-rw-r--r--chall/ply-2.2/test/yacc_simple.exp1
-rw-r--r--chall/ply-2.2/test/yacc_simple.py69
-rw-r--r--chall/ply-2.2/test/yacc_sr.exp2
-rw-r--r--chall/ply-2.2/test/yacc_sr.py64
-rw-r--r--chall/ply-2.2/test/yacc_term1.exp2
-rw-r--r--chall/ply-2.2/test/yacc_term1.py69
-rw-r--r--chall/ply-2.2/test/yacc_unused.exp4
-rw-r--r--chall/ply-2.2/test/yacc_unused.py78
-rw-r--r--chall/ply-2.2/test/yacc_uprec.exp2
-rw-r--r--chall/ply-2.2/test/yacc_uprec.py64
108 files changed, 0 insertions, 2830 deletions
diff --git a/chall/ply-2.2/test/README b/chall/ply-2.2/test/README
deleted file mode 100644
index aac12b0..0000000
--- a/chall/ply-2.2/test/README
+++ /dev/null
@@ -1,11 +0,0 @@
-This directory mostly contains tests for various types of error
-conditions. To run:
-
- $ python testlex.py .
- $ python testyacc.py .
-
-The tests can also be run using the Python unittest module.
-
- $ python rununit.py
-
-The script 'cleanup.sh' cleans up this directory to its original state.
diff --git a/chall/ply-2.2/test/calclex.py b/chall/ply-2.2/test/calclex.py
deleted file mode 100644
index 2550734..0000000
--- a/chall/ply-2.2/test/calclex.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# -----------------------------------------------------------------------------
-# calclex.py
-# -----------------------------------------------------------------------------
-import sys
-
-sys.path.append("..")
-import ply.lex as lex
-
-tokens = (
- 'NAME','NUMBER',
- 'PLUS','MINUS','TIMES','DIVIDE','EQUALS',
- 'LPAREN','RPAREN',
- )
-
-# Tokens
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_TIMES = r'\*'
-t_DIVIDE = r'/'
-t_EQUALS = r'='
-t_LPAREN = r'\('
-t_RPAREN = r'\)'
-t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*'
-
-def t_NUMBER(t):
- r'\d+'
- try:
- t.value = int(t.value)
- except ValueError:
- print "Integer value too large", t.value
- t.value = 0
- return t
-
-t_ignore = " \t"
-
-def t_newline(t):
- r'\n+'
- t.lineno += t.value.count("\n")
-
-def t_error(t):
- print "Illegal character '%s'" % t.value[0]
- t.lexer.skip(1)
-
-# Build the lexer
-lex.lex()
-
-
-
diff --git a/chall/ply-2.2/test/cleanup.sh b/chall/ply-2.2/test/cleanup.sh
deleted file mode 100755
index d7d99b6..0000000
--- a/chall/ply-2.2/test/cleanup.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-rm -f *~ *.pyc *.dif *.out
-
diff --git a/chall/ply-2.2/test/lex_doc1.exp b/chall/ply-2.2/test/lex_doc1.exp
deleted file mode 100644
index 5b63c1e..0000000
--- a/chall/ply-2.2/test/lex_doc1.exp
+++ /dev/null
@@ -1 +0,0 @@
-./lex_doc1.py:18: No regular expression defined for rule 't_NUMBER'
diff --git a/chall/ply-2.2/test/lex_doc1.py b/chall/ply-2.2/test/lex_doc1.py
deleted file mode 100644
index 3951b5c..0000000
--- a/chall/ply-2.2/test/lex_doc1.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# lex_token.py
-#
-# Missing documentation string
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-def t_NUMBER(t):
- pass
-
-def t_error(t):
- pass
-
-
-import sys
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_dup1.exp b/chall/ply-2.2/test/lex_dup1.exp
deleted file mode 100644
index 2098a40..0000000
--- a/chall/ply-2.2/test/lex_dup1.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./lex_dup1.py:20: Rule t_NUMBER redefined. Previously defined on line 18
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_dup1.py b/chall/ply-2.2/test/lex_dup1.py
deleted file mode 100644
index 68f8092..0000000
--- a/chall/ply-2.2/test/lex_dup1.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# lex_token.py
-#
-# Duplicated rule specifiers
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-t_NUMBER = r'\d+'
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_dup2.exp b/chall/ply-2.2/test/lex_dup2.exp
deleted file mode 100644
index d327cfe..0000000
--- a/chall/ply-2.2/test/lex_dup2.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./lex_dup2.py:22: Rule t_NUMBER redefined. Previously defined on line 18
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_dup2.py b/chall/ply-2.2/test/lex_dup2.py
deleted file mode 100644
index f4d346e..0000000
--- a/chall/ply-2.2/test/lex_dup2.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# lex_token.py
-#
-# Duplicated rule specifiers
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-def t_NUMBER(t):
- r'\d+'
- pass
-
-def t_NUMBER(t):
- r'\d+'
- pass
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_dup3.exp b/chall/ply-2.2/test/lex_dup3.exp
deleted file mode 100644
index ec0680c..0000000
--- a/chall/ply-2.2/test/lex_dup3.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./lex_dup3.py:20: Rule t_NUMBER redefined. Previously defined on line 18
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_dup3.py b/chall/ply-2.2/test/lex_dup3.py
deleted file mode 100644
index e17b520..0000000
--- a/chall/ply-2.2/test/lex_dup3.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# lex_token.py
-#
-# Duplicated rule specifiers
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_NUMBER(t):
- r'\d+'
- pass
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_empty.exp b/chall/ply-2.2/test/lex_empty.exp
deleted file mode 100644
index af38602..0000000
--- a/chall/ply-2.2/test/lex_empty.exp
+++ /dev/null
@@ -1 +0,0 @@
-SyntaxError: lex: no rules of the form t_rulename are defined.
diff --git a/chall/ply-2.2/test/lex_empty.py b/chall/ply-2.2/test/lex_empty.py
deleted file mode 100644
index 96625f7..0000000
--- a/chall/ply-2.2/test/lex_empty.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# lex_token.py
-#
-# No rules defined
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_error1.exp b/chall/ply-2.2/test/lex_error1.exp
deleted file mode 100644
index baa19e5..0000000
--- a/chall/ply-2.2/test/lex_error1.exp
+++ /dev/null
@@ -1 +0,0 @@
-lex: Warning. no t_error rule is defined.
diff --git a/chall/ply-2.2/test/lex_error1.py b/chall/ply-2.2/test/lex_error1.py
deleted file mode 100644
index a99d9be..0000000
--- a/chall/ply-2.2/test/lex_error1.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# lex_token.py
-#
-# Missing t_error() rule
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_error2.exp b/chall/ply-2.2/test/lex_error2.exp
deleted file mode 100644
index fb1b55c..0000000
--- a/chall/ply-2.2/test/lex_error2.exp
+++ /dev/null
@@ -1 +0,0 @@
-SyntaxError: lex: Rule 't_error' must be defined as a function
diff --git a/chall/ply-2.2/test/lex_error2.py b/chall/ply-2.2/test/lex_error2.py
deleted file mode 100644
index a59c8d4..0000000
--- a/chall/ply-2.2/test/lex_error2.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# lex_token.py
-#
-# t_error defined, but not function
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-t_error = "foo"
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_error3.exp b/chall/ply-2.2/test/lex_error3.exp
deleted file mode 100644
index 1b482bf..0000000
--- a/chall/ply-2.2/test/lex_error3.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./lex_error3.py:20: Rule 't_error' requires an argument.
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_error3.py b/chall/ply-2.2/test/lex_error3.py
deleted file mode 100644
index 584600f..0000000
--- a/chall/ply-2.2/test/lex_error3.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# t_error defined as function, but with wrong # args
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error():
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_error4.exp b/chall/ply-2.2/test/lex_error4.exp
deleted file mode 100644
index 98505a2..0000000
--- a/chall/ply-2.2/test/lex_error4.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./lex_error4.py:20: Rule 't_error' has too many arguments.
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_error4.py b/chall/ply-2.2/test/lex_error4.py
deleted file mode 100644
index d05de74..0000000
--- a/chall/ply-2.2/test/lex_error4.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# t_error defined as function, but too many args
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error(t,s):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_hedit.exp b/chall/ply-2.2/test/lex_hedit.exp
deleted file mode 100644
index 7b27dcb..0000000
--- a/chall/ply-2.2/test/lex_hedit.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-(H_EDIT_DESCRIPTOR,'abc',1,0)
-(H_EDIT_DESCRIPTOR,'abcdefghij',1,6)
-(H_EDIT_DESCRIPTOR,'xy',1,20)
diff --git a/chall/ply-2.2/test/lex_hedit.py b/chall/ply-2.2/test/lex_hedit.py
deleted file mode 100644
index 0f87423..0000000
--- a/chall/ply-2.2/test/lex_hedit.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# -----------------------------------------------------------------------------
-# hedit.py
-#
-# Paring of Fortran H Edit descriptions (Contributed by Pearu Peterson)
-#
-# These tokens can't be easily tokenized because they are of the following
-# form:
-#
-# nHc1...cn
-#
-# where n is a positive integer and c1 ... cn are characters.
-#
-# This example shows how to modify the state of the lexer to parse
-# such tokens
-# -----------------------------------------------------------------------------
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = (
- 'H_EDIT_DESCRIPTOR',
- )
-
-# Tokens
-t_ignore = " \t\n"
-
-def t_H_EDIT_DESCRIPTOR(t):
- r"\d+H.*" # This grabs all of the remaining text
- i = t.value.index('H')
- n = eval(t.value[:i])
-
- # Adjust the tokenizing position
- t.lexer.lexpos -= len(t.value) - (i+1+n)
- t.value = t.value[i+1:i+1+n]
- return t
-
-def t_error(t):
- print "Illegal character '%s'" % t.value[0]
- t.lexer.skip(1)
-
-# Build the lexer
-lex.lex()
-lex.runmain(data="3Habc 10Habcdefghij 2Hxy")
-
-
-
diff --git a/chall/ply-2.2/test/lex_ignore.exp b/chall/ply-2.2/test/lex_ignore.exp
deleted file mode 100644
index 85e2961..0000000
--- a/chall/ply-2.2/test/lex_ignore.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-./lex_ignore.py:20: Rule 't_ignore' must be defined as a string.
-Traceback (most recent call last):
- File "./lex_ignore.py", line 29, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_ignore.py b/chall/ply-2.2/test/lex_ignore.py
deleted file mode 100644
index 94b0266..0000000
--- a/chall/ply-2.2/test/lex_ignore.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# lex_token.py
-#
-# Improperly specific ignore declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_ignore(t):
- ' \t'
- pass
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_nowarn.exp b/chall/ply-2.2/test/lex_nowarn.exp
deleted file mode 100644
index e69de29..0000000
--- a/chall/ply-2.2/test/lex_nowarn.exp
+++ /dev/null
diff --git a/chall/ply-2.2/test/lex_nowarn.py b/chall/ply-2.2/test/lex_nowarn.py
deleted file mode 100644
index d60d31c..0000000
--- a/chall/ply-2.2/test/lex_nowarn.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# lex_token.py
-#
-# Missing t_error() rule
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- "NUMBER",
- ]
-
-states = (('foo','exclusive'),)
-
-t_ignore = ' \t'
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-t_foo_NUMBER = r'\d+'
-
-sys.tracebacklimit = 0
-
-lex.lex(nowarn=1)
-
-
diff --git a/chall/ply-2.2/test/lex_re1.exp b/chall/ply-2.2/test/lex_re1.exp
deleted file mode 100644
index b9e621c..0000000
--- a/chall/ply-2.2/test/lex_re1.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: Invalid regular expression for rule 't_NUMBER'. unbalanced parenthesis
-Traceback (most recent call last):
- File "./lex_re1.py", line 25, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_re1.py b/chall/ply-2.2/test/lex_re1.py
deleted file mode 100644
index 9e544fe..0000000
--- a/chall/ply-2.2/test/lex_re1.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# Bad regular expression in a string
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'(\d+'
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_re2.exp b/chall/ply-2.2/test/lex_re2.exp
deleted file mode 100644
index 7ba89b4..0000000
--- a/chall/ply-2.2/test/lex_re2.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: Regular expression for rule 't_PLUS' matches empty string.
-Traceback (most recent call last):
- File "./lex_re2.py", line 25, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_re2.py b/chall/ply-2.2/test/lex_re2.py
deleted file mode 100644
index 522b415..0000000
--- a/chall/ply-2.2/test/lex_re2.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# Regular expression rule matches empty string
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+?'
-t_MINUS = r'-'
-t_NUMBER = r'(\d+)'
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_re3.exp b/chall/ply-2.2/test/lex_re3.exp
deleted file mode 100644
index 7cdcae4..0000000
--- a/chall/ply-2.2/test/lex_re3.exp
+++ /dev/null
@@ -1,8 +0,0 @@
-lex: Invalid regular expression for rule 't_POUND'. unbalanced parenthesis
-lex: Make sure '#' in rule 't_POUND' is escaped with '\#'.
-Traceback (most recent call last):
- File "./lex_re3.py", line 27, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_re3.py b/chall/ply-2.2/test/lex_re3.py
deleted file mode 100644
index 099e156..0000000
--- a/chall/ply-2.2/test/lex_re3.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# lex_token.py
-#
-# Regular expression rule matches empty string
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- "POUND",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'(\d+)'
-t_POUND = r'#'
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_rule1.exp b/chall/ply-2.2/test/lex_rule1.exp
deleted file mode 100644
index 0c23ca2..0000000
--- a/chall/ply-2.2/test/lex_rule1.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-lex: t_NUMBER not defined as a function or string
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_rule1.py b/chall/ply-2.2/test/lex_rule1.py
deleted file mode 100644
index e49a15b..0000000
--- a/chall/ply-2.2/test/lex_rule1.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# Rule defined as some other type
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = 1
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state1.exp b/chall/ply-2.2/test/lex_state1.exp
deleted file mode 100644
index 8b58050..0000000
--- a/chall/ply-2.2/test/lex_state1.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: states must be defined as a tuple or list.
-Traceback (most recent call last):
- File "./lex_state1.py", line 38, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state1.py b/chall/ply-2.2/test/lex_state1.py
deleted file mode 100644
index 7eb2976..0000000
--- a/chall/ply-2.2/test/lex_state1.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# lex_state1.py
-#
-# Bad state declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-states = 'comment'
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state2.exp b/chall/ply-2.2/test/lex_state2.exp
deleted file mode 100644
index 11c33a7..0000000
--- a/chall/ply-2.2/test/lex_state2.exp
+++ /dev/null
@@ -1,8 +0,0 @@
-lex: invalid state specifier 'comment'. Must be a tuple (statename,'exclusive|inclusive')
-lex: invalid state specifier 'example'. Must be a tuple (statename,'exclusive|inclusive')
-Traceback (most recent call last):
- File "./lex_state2.py", line 38, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state2.py b/chall/ply-2.2/test/lex_state2.py
deleted file mode 100644
index b76b0db..0000000
--- a/chall/ply-2.2/test/lex_state2.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# lex_state2.py
-#
-# Bad state declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-states = ('comment','example')
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state3.exp b/chall/ply-2.2/test/lex_state3.exp
deleted file mode 100644
index 2c3442c..0000000
--- a/chall/ply-2.2/test/lex_state3.exp
+++ /dev/null
@@ -1,8 +0,0 @@
-lex: state name 1 must be a string
-lex: No rules defined for state 'example'
-Traceback (most recent call last):
- File "./lex_state3.py", line 40, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state3.py b/chall/ply-2.2/test/lex_state3.py
deleted file mode 100644
index fb4ce6c..0000000
--- a/chall/ply-2.2/test/lex_state3.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# lex_state2.py
-#
-# Bad state declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = ((comment, 'inclusive'),
- ('example', 'exclusive'))
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state4.exp b/chall/ply-2.2/test/lex_state4.exp
deleted file mode 100644
index 7497a47..0000000
--- a/chall/ply-2.2/test/lex_state4.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: state type for state comment must be 'inclusive' or 'exclusive'
-Traceback (most recent call last):
- File "./lex_state4.py", line 39, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state4.py b/chall/ply-2.2/test/lex_state4.py
deleted file mode 100644
index 0993aa9..0000000
--- a/chall/ply-2.2/test/lex_state4.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# lex_state2.py
-#
-# Bad state declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = (('comment', 'exclsive'),)
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state5.exp b/chall/ply-2.2/test/lex_state5.exp
deleted file mode 100644
index e9e43e8..0000000
--- a/chall/ply-2.2/test/lex_state5.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: state 'comment' already defined.
-Traceback (most recent call last):
- File "./lex_state5.py", line 40, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state5.py b/chall/ply-2.2/test/lex_state5.py
deleted file mode 100644
index c3c1cbf..0000000
--- a/chall/ply-2.2/test/lex_state5.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# lex_state2.py
-#
-# Bad state declaration
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = (('comment', 'exclusive'),
- ('comment', 'exclusive'))
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state_noerror.exp b/chall/ply-2.2/test/lex_state_noerror.exp
deleted file mode 100644
index e14149f..0000000
--- a/chall/ply-2.2/test/lex_state_noerror.exp
+++ /dev/null
@@ -1 +0,0 @@
-lex: Warning. no error rule is defined for exclusive state 'comment'
diff --git a/chall/ply-2.2/test/lex_state_noerror.py b/chall/ply-2.2/test/lex_state_noerror.py
deleted file mode 100644
index 853b157..0000000
--- a/chall/ply-2.2/test/lex_state_noerror.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# lex_state2.py
-#
-# Declaration of a state for which no rules are defined
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = (('comment', 'exclusive'),)
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state_norule.exp b/chall/ply-2.2/test/lex_state_norule.exp
deleted file mode 100644
index a8ff4ca..0000000
--- a/chall/ply-2.2/test/lex_state_norule.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-lex: No rules defined for state 'example'
-Traceback (most recent call last):
- File "./lex_state_norule.py", line 40, in ?
- lex.lex()
- File "../ply/lex.py", line 758, in lex
- raise SyntaxError,"lex: Unable to build lexer."
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_state_norule.py b/chall/ply-2.2/test/lex_state_norule.py
deleted file mode 100644
index e48a319..0000000
--- a/chall/ply-2.2/test/lex_state_norule.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# lex_state2.py
-#
-# Declaration of a state for which no rules are defined
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = (('comment', 'exclusive'),
- ('example', 'exclusive'))
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-import sys
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_state_try.exp b/chall/ply-2.2/test/lex_state_try.exp
deleted file mode 100644
index 65f2e38..0000000
--- a/chall/ply-2.2/test/lex_state_try.exp
+++ /dev/null
@@ -1,7 +0,0 @@
-(NUMBER,'3',1,0)
-(PLUS,'+',1,2)
-(NUMBER,'4',1,4)
-Entering comment state
-comment body LexToken(comment_body_part,'This is a comment */',1,9)
-(PLUS,'+',1,30)
-(NUMBER,'10',1,32)
diff --git a/chall/ply-2.2/test/lex_state_try.py b/chall/ply-2.2/test/lex_state_try.py
deleted file mode 100644
index a16403e..0000000
--- a/chall/ply-2.2/test/lex_state_try.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# lex_state2.py
-#
-# Declaration of a state for which no rules are defined
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-comment = 1
-states = (('comment', 'exclusive'),)
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-t_ignore = " \t"
-
-# Comments
-def t_comment(t):
- r'/\*'
- t.lexer.begin('comment')
- print "Entering comment state"
-
-def t_comment_body_part(t):
- r'(.|\n)*\*/'
- print "comment body", t
- t.lexer.begin('INITIAL')
-
-def t_error(t):
- pass
-
-t_comment_error = t_error
-t_comment_ignore = t_ignore
-
-import sys
-
-lex.lex()
-
-data = "3 + 4 /* This is a comment */ + 10"
-
-lex.runmain(data=data)
diff --git a/chall/ply-2.2/test/lex_token1.exp b/chall/ply-2.2/test/lex_token1.exp
deleted file mode 100644
index 3792831..0000000
--- a/chall/ply-2.2/test/lex_token1.exp
+++ /dev/null
@@ -1 +0,0 @@
-SyntaxError: lex: module does not define 'tokens'
diff --git a/chall/ply-2.2/test/lex_token1.py b/chall/ply-2.2/test/lex_token1.py
deleted file mode 100644
index 380c31c..0000000
--- a/chall/ply-2.2/test/lex_token1.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# lex_token.py
-#
-# Tests for absence of tokens variable
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_token2.exp b/chall/ply-2.2/test/lex_token2.exp
deleted file mode 100644
index 3f98fe5..0000000
--- a/chall/ply-2.2/test/lex_token2.exp
+++ /dev/null
@@ -1 +0,0 @@
-SyntaxError: lex: tokens must be a list or tuple.
diff --git a/chall/ply-2.2/test/lex_token2.py b/chall/ply-2.2/test/lex_token2.py
deleted file mode 100644
index 87db8a0..0000000
--- a/chall/ply-2.2/test/lex_token2.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# lex_token.py
-#
-# Tests for tokens of wrong type
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = "PLUS MINUS NUMBER"
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_token3.exp b/chall/ply-2.2/test/lex_token3.exp
deleted file mode 100644
index d991d3c..0000000
--- a/chall/ply-2.2/test/lex_token3.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-lex: Rule 't_MINUS' defined for an unspecified token MINUS.
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_token3.py b/chall/ply-2.2/test/lex_token3.py
deleted file mode 100644
index 27ce947..0000000
--- a/chall/ply-2.2/test/lex_token3.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# lex_token.py
-#
-# tokens is right type, but is missing a token for one rule
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error(t):
- pass
-
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_token4.exp b/chall/ply-2.2/test/lex_token4.exp
deleted file mode 100644
index 3dd88e0..0000000
--- a/chall/ply-2.2/test/lex_token4.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-lex: Bad token name '-'
-SyntaxError: lex: Unable to build lexer.
diff --git a/chall/ply-2.2/test/lex_token4.py b/chall/ply-2.2/test/lex_token4.py
deleted file mode 100644
index 612ff13..0000000
--- a/chall/ply-2.2/test/lex_token4.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# lex_token.py
-#
-# Bad token name
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "-",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-t_NUMBER = r'\d+'
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-
-
diff --git a/chall/ply-2.2/test/lex_token5.exp b/chall/ply-2.2/test/lex_token5.exp
deleted file mode 100644
index 2f03889..0000000
--- a/chall/ply-2.2/test/lex_token5.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.lex.LexError: ./lex_token5.py:19: Rule 't_NUMBER' returned an unknown token type 'NUM'
diff --git a/chall/ply-2.2/test/lex_token5.py b/chall/ply-2.2/test/lex_token5.py
deleted file mode 100644
index 77fabde..0000000
--- a/chall/ply-2.2/test/lex_token5.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# lex_token.py
-#
-# Return a bad token name
-
-import sys
-sys.path.insert(0,"..")
-
-import ply.lex as lex
-
-tokens = [
- "PLUS",
- "MINUS",
- "NUMBER",
- ]
-
-t_PLUS = r'\+'
-t_MINUS = r'-'
-
-def t_NUMBER(t):
- r'\d+'
- t.type = "NUM"
- return t
-
-def t_error(t):
- pass
-
-sys.tracebacklimit = 0
-
-lex.lex()
-lex.input("1234")
-t = lex.token()
-
-
diff --git a/chall/ply-2.2/test/rununit.py b/chall/ply-2.2/test/rununit.py
deleted file mode 100644
index d6b36fd..0000000
--- a/chall/ply-2.2/test/rununit.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-'''Script to run all tests using python "unittest" module'''
-
-__author__ = "Miki Tebeka <miki.tebeka@zoran.com>"
-
-from unittest import TestCase, main, makeSuite, TestSuite
-from os import popen, environ, remove
-from glob import glob
-from sys import executable, argv
-from os.path import isfile, basename, splitext
-
-# Add path to lex.py and yacc.py
-environ["PYTHONPATH"] = ".."
-
-class PLYTest(TestCase):
- '''General test case for PLY test'''
- def _runtest(self, filename):
- '''Run a single test file an compare result'''
- exp_file = filename.replace(".py", ".exp")
- self.failUnless(isfile(exp_file), "can't find %s" % exp_file)
- pipe = popen("%s %s 2>&1" % (executable, filename))
- out = pipe.read().strip()
- self.failUnlessEqual(out, open(exp_file).read().strip())
-
-
-class LexText(PLYTest):
- '''Testing Lex'''
- pass
-
-class YaccTest(PLYTest):
- '''Testing Yacc'''
-
- def tearDown(self):
- '''Cleanup parsetab.py[c] file'''
- for ext in (".py", ".pyc"):
- fname = "parsetab%s" % ext
- if isfile(fname):
- remove(fname)
-
-def add_test(klass, filename):
- '''Add a test to TestCase class'''
- def t(self):
- self._runtest(filename)
- # Test name is test_FILENAME without the ./ and without the .py
- setattr(klass, "test_%s" % (splitext(basename(filename))[0]), t)
-
-# Add lex tests
-for file in glob("./lex_*.py"):
- add_test(LexText, file)
-lex_suite = makeSuite(LexText, "test_")
-
-# Add yacc tests
-for file in glob("./yacc_*.py"):
- add_test(YaccTest, file)
-yacc_suite = makeSuite(YaccTest, "test_")
-
-# All tests suite
-test_suite = TestSuite((lex_suite, yacc_suite))
-
-if __name__ == "__main__":
- main()
-
diff --git a/chall/ply-2.2/test/testlex.py b/chall/ply-2.2/test/testlex.py
deleted file mode 100755
index 2dae47a..0000000
--- a/chall/ply-2.2/test/testlex.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/local/bin
-# ----------------------------------------------------------------------
-# testlex.py
-#
-# Run tests for the lexing module
-# ----------------------------------------------------------------------
-
-import sys,os,glob
-
-if len(sys.argv) < 2:
- print "Usage: python testlex.py directory"
- raise SystemExit
-
-dirname = None
-make = 0
-
-for o in sys.argv[1:]:
- if o == '-make':
- make = 1
- else:
- dirname = o
- break
-
-if not dirname:
- print "Usage: python testlex.py [-make] directory"
- raise SystemExit
-
-f = glob.glob("%s/%s" % (dirname,"lex_*.py"))
-
-print "**** Running tests for lex ****"
-
-for t in f:
- name = t[:-3]
- print "Testing %-32s" % name,
- if make:
- if not os.path.exists("%s.exp" % name):
- os.system("python %s.py >%s.exp 2>&1" % (name,name))
- passed = 1
- else:
- os.system("python %s.py >%s.out 2>&1" % (name,name))
- a = os.system("diff %s.out %s.exp >%s.dif" % (name,name,name))
- if a == 0:
- passed = 1
- else:
- passed = 0
-
- if passed:
- print "Passed"
- else:
- print "Failed. See %s.dif" % name
-
-
-
-
-
-
-
diff --git a/chall/ply-2.2/test/testyacc.py b/chall/ply-2.2/test/testyacc.py
deleted file mode 100644
index f976ff5..0000000
--- a/chall/ply-2.2/test/testyacc.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/local/bin
-# ----------------------------------------------------------------------
-# testyacc.py
-#
-# Run tests for the yacc module
-# ----------------------------------------------------------------------
-
-import sys,os,glob
-
-if len(sys.argv) < 2:
- print "Usage: python testyacc.py directory"
- raise SystemExit
-
-dirname = None
-make = 0
-
-for o in sys.argv[1:]:
- if o == '-make':
- make = 1
- else:
- dirname = o
- break
-
-if not dirname:
- print "Usage: python testyacc.py [-make] directory"
- raise SystemExit
-
-f = glob.glob("%s/%s" % (dirname,"yacc_*.py"))
-
-print "**** Running tests for yacc ****"
-
-for t in f:
- name = t[:-3]
- print "Testing %-32s" % name,
- os.system("rm -f %s/parsetab.*" % dirname)
- if make:
- if not os.path.exists("%s.exp" % name):
- os.system("python %s.py >%s.exp 2>&1" % (name,name))
- passed = 1
- else:
- os.system("python %s.py >%s.out 2>&1" % (name,name))
- a = os.system("diff %s.out %s.exp >%s.dif" % (name,name,name))
- if a == 0:
- passed = 1
- else:
- passed = 0
-
- if passed:
- print "Passed"
- else:
- print "Failed. See %s.dif" % name
-
-
-
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_badargs.exp b/chall/ply-2.2/test/yacc_badargs.exp
deleted file mode 100644
index e994676..0000000
--- a/chall/ply-2.2/test/yacc_badargs.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-./yacc_badargs.py:23: Rule 'p_statement_assign' has too many arguments.
-./yacc_badargs.py:27: Rule 'p_statement_expr' requires an argument.
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_badargs.py b/chall/ply-2.2/test/yacc_badargs.py
deleted file mode 100644
index 810e529..0000000
--- a/chall/ply-2.2/test/yacc_badargs.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_badargs.py
-#
-# Rules with wrong # args
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t,s):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr():
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_badprec.exp b/chall/ply-2.2/test/yacc_badprec.exp
deleted file mode 100644
index f4f574b..0000000
--- a/chall/ply-2.2/test/yacc_badprec.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: precedence must be a list or tuple.
diff --git a/chall/ply-2.2/test/yacc_badprec.py b/chall/ply-2.2/test/yacc_badprec.py
deleted file mode 100644
index 8f64652..0000000
--- a/chall/ply-2.2/test/yacc_badprec.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_badprec.py
-#
-# Bad precedence specifier
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = "blah"
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_badprec2.exp b/chall/ply-2.2/test/yacc_badprec2.exp
deleted file mode 100644
index 8fac075..0000000
--- a/chall/ply-2.2/test/yacc_badprec2.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-yacc: Invalid precedence table.
-yacc: Generating LALR parsing table...
-yacc: 8 shift/reduce conflicts
diff --git a/chall/ply-2.2/test/yacc_badprec2.py b/chall/ply-2.2/test/yacc_badprec2.py
deleted file mode 100644
index 206bda7..0000000
--- a/chall/ply-2.2/test/yacc_badprec2.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_badprec2.py
-#
-# Bad precedence
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- 42,
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_badrule.exp b/chall/ply-2.2/test/yacc_badrule.exp
deleted file mode 100644
index a87bf7d..0000000
--- a/chall/ply-2.2/test/yacc_badrule.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-./yacc_badrule.py:25: Syntax error. Expected ':'
-./yacc_badrule.py:29: Syntax error in rule 'statement'
-./yacc_badrule.py:34: Syntax error. Expected ':'
-./yacc_badrule.py:43: Syntax error. Expected ':'
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_badrule.py b/chall/ply-2.2/test/yacc_badrule.py
deleted file mode 100644
index f5fef8a..0000000
--- a/chall/ply-2.2/test/yacc_badrule.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_badrule.py
-#
-# Syntax problems in the rule strings
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression: MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_badtok.exp b/chall/ply-2.2/test/yacc_badtok.exp
deleted file mode 100644
index ccdc0e7..0000000
--- a/chall/ply-2.2/test/yacc_badtok.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: tokens must be a list or tuple.
diff --git a/chall/ply-2.2/test/yacc_badtok.py b/chall/ply-2.2/test/yacc_badtok.py
deleted file mode 100644
index 4f2af51..0000000
--- a/chall/ply-2.2/test/yacc_badtok.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_badtok.py
-#
-# A grammar, but tokens is a bad datatype
-# -----------------------------------------------------------------------------
-
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-tokens = "Hello"
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_dup.exp b/chall/ply-2.2/test/yacc_dup.exp
deleted file mode 100644
index fdfb210..0000000
--- a/chall/ply-2.2/test/yacc_dup.exp
+++ /dev/null
@@ -1,4 +0,0 @@
-./yacc_dup.py:28: Function p_statement redefined. Previously defined on line 24
-yacc: Warning. Token 'EQUALS' defined, but not used.
-yacc: Warning. There is 1 unused token.
-yacc: Generating LALR parsing table...
diff --git a/chall/ply-2.2/test/yacc_dup.py b/chall/ply-2.2/test/yacc_dup.py
deleted file mode 100644
index e0b683d..0000000
--- a/chall/ply-2.2/test/yacc_dup.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_dup.py
-#
-# Duplicated rule name
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_error1.exp b/chall/ply-2.2/test/yacc_error1.exp
deleted file mode 100644
index 13bed04..0000000
--- a/chall/ply-2.2/test/yacc_error1.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: ./yacc_error1.py:62: p_error() requires 1 argument.
diff --git a/chall/ply-2.2/test/yacc_error1.py b/chall/ply-2.2/test/yacc_error1.py
deleted file mode 100644
index 2768fc1..0000000
--- a/chall/ply-2.2/test/yacc_error1.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_error1.py
-#
-# Bad p_error() function
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t,s):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_error2.exp b/chall/ply-2.2/test/yacc_error2.exp
deleted file mode 100644
index 4a7628d..0000000
--- a/chall/ply-2.2/test/yacc_error2.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: ./yacc_error2.py:62: p_error() requires 1 argument.
diff --git a/chall/ply-2.2/test/yacc_error2.py b/chall/ply-2.2/test/yacc_error2.py
deleted file mode 100644
index 8f3a052..0000000
--- a/chall/ply-2.2/test/yacc_error2.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_error1.py
-#
-# Bad p_error() function
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error():
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_error3.exp b/chall/ply-2.2/test/yacc_error3.exp
deleted file mode 100644
index 7fca2fe..0000000
--- a/chall/ply-2.2/test/yacc_error3.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: 'p_error' defined, but is not a function or method.
diff --git a/chall/ply-2.2/test/yacc_error3.py b/chall/ply-2.2/test/yacc_error3.py
deleted file mode 100644
index b387de5..0000000
--- a/chall/ply-2.2/test/yacc_error3.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_error1.py
-#
-# Bad p_error() function
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-p_error = "blah"
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_inf.exp b/chall/ply-2.2/test/yacc_inf.exp
deleted file mode 100644
index 88cfa4a..0000000
--- a/chall/ply-2.2/test/yacc_inf.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-yacc: Warning. Token 'NUMBER' defined, but not used.
-yacc: Warning. There is 1 unused token.
-yacc: Infinite recursion detected for symbol 'statement'.
-yacc: Infinite recursion detected for symbol 'expression'.
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_inf.py b/chall/ply-2.2/test/yacc_inf.py
deleted file mode 100644
index 9b9aef7..0000000
--- a/chall/ply-2.2/test/yacc_inf.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_inf.py
-#
-# Infinite recursion
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_missing1.exp b/chall/ply-2.2/test/yacc_missing1.exp
deleted file mode 100644
index de63d4f..0000000
--- a/chall/ply-2.2/test/yacc_missing1.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./yacc_missing1.py:25: Symbol 'location' used, but not defined as a token or a rule.
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_missing1.py b/chall/ply-2.2/test/yacc_missing1.py
deleted file mode 100644
index fbc54d8..0000000
--- a/chall/ply-2.2/test/yacc_missing1.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_missing1.py
-#
-# Grammar with a missing rule
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : location EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_nodoc.exp b/chall/ply-2.2/test/yacc_nodoc.exp
deleted file mode 100644
index 889ccfc..0000000
--- a/chall/ply-2.2/test/yacc_nodoc.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./yacc_nodoc.py:28: No documentation string specified in function 'p_statement_expr'
-yacc: Generating LALR parsing table...
diff --git a/chall/ply-2.2/test/yacc_nodoc.py b/chall/ply-2.2/test/yacc_nodoc.py
deleted file mode 100644
index 4c5ab20..0000000
--- a/chall/ply-2.2/test/yacc_nodoc.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_nodoc.py
-#
-# Rule with a missing doc-string
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_noerror.exp b/chall/ply-2.2/test/yacc_noerror.exp
deleted file mode 100644
index 658f907..0000000
--- a/chall/ply-2.2/test/yacc_noerror.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-yacc: Generating LALR parsing table...
-yacc: Warning. no p_error() function is defined.
diff --git a/chall/ply-2.2/test/yacc_noerror.py b/chall/ply-2.2/test/yacc_noerror.py
deleted file mode 100644
index 9c11838..0000000
--- a/chall/ply-2.2/test/yacc_noerror.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_noerror.py
-#
-# No p_error() rule defined.
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_nop.exp b/chall/ply-2.2/test/yacc_nop.exp
deleted file mode 100644
index 515fff7..0000000
--- a/chall/ply-2.2/test/yacc_nop.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./yacc_nop.py:28: Warning. Possible grammar rule 'statement_expr' defined without p_ prefix.
-yacc: Generating LALR parsing table...
diff --git a/chall/ply-2.2/test/yacc_nop.py b/chall/ply-2.2/test/yacc_nop.py
deleted file mode 100644
index c0b431d..0000000
--- a/chall/ply-2.2/test/yacc_nop.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_nop.py
-#
-# Possible grammar rule defined without p_ prefix
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_notfunc.exp b/chall/ply-2.2/test/yacc_notfunc.exp
deleted file mode 100644
index f73bc93..0000000
--- a/chall/ply-2.2/test/yacc_notfunc.exp
+++ /dev/null
@@ -1,4 +0,0 @@
-yacc: Warning. 'p_statement_assign' not defined as a function
-yacc: Warning. Token 'EQUALS' defined, but not used.
-yacc: Warning. There is 1 unused token.
-yacc: Generating LALR parsing table...
diff --git a/chall/ply-2.2/test/yacc_notfunc.py b/chall/ply-2.2/test/yacc_notfunc.py
deleted file mode 100644
index 8389355..0000000
--- a/chall/ply-2.2/test/yacc_notfunc.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_notfunc.py
-#
-# p_rule not defined as a function
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-p_statement_assign = "Blah"
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_notok.exp b/chall/ply-2.2/test/yacc_notok.exp
deleted file mode 100644
index d2399fe..0000000
--- a/chall/ply-2.2/test/yacc_notok.exp
+++ /dev/null
@@ -1 +0,0 @@
-ply.yacc.YaccError: module does not define a list 'tokens'
diff --git a/chall/ply-2.2/test/yacc_notok.py b/chall/ply-2.2/test/yacc_notok.py
deleted file mode 100644
index e566a1b..0000000
--- a/chall/ply-2.2/test/yacc_notok.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_notok.py
-#
-# A grammar, but we forgot to import the tokens list
-# -----------------------------------------------------------------------------
-
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_rr.exp b/chall/ply-2.2/test/yacc_rr.exp
deleted file mode 100644
index f73cefd..0000000
--- a/chall/ply-2.2/test/yacc_rr.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-yacc: Generating LALR parsing table...
-yacc: 1 reduce/reduce conflict
diff --git a/chall/ply-2.2/test/yacc_rr.py b/chall/ply-2.2/test/yacc_rr.py
deleted file mode 100644
index bb8cba2..0000000
--- a/chall/ply-2.2/test/yacc_rr.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_rr.py
-#
-# A grammar with a reduce/reduce conflict
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_assign_2(t):
- 'statement : NAME EQUALS NUMBER'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_simple.exp b/chall/ply-2.2/test/yacc_simple.exp
deleted file mode 100644
index 3836031..0000000
--- a/chall/ply-2.2/test/yacc_simple.exp
+++ /dev/null
@@ -1 +0,0 @@
-yacc: Generating LALR parsing table...
diff --git a/chall/ply-2.2/test/yacc_simple.py b/chall/ply-2.2/test/yacc_simple.py
deleted file mode 100644
index b5dc9f3..0000000
--- a/chall/ply-2.2/test/yacc_simple.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_simple.py
-#
-# A simple, properly specifier grammar
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_sr.exp b/chall/ply-2.2/test/yacc_sr.exp
deleted file mode 100644
index 1b76450..0000000
--- a/chall/ply-2.2/test/yacc_sr.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-yacc: Generating LALR parsing table...
-yacc: 20 shift/reduce conflicts
diff --git a/chall/ply-2.2/test/yacc_sr.py b/chall/ply-2.2/test/yacc_sr.py
deleted file mode 100644
index e2f03ec..0000000
--- a/chall/ply-2.2/test/yacc_sr.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_sr.py
-#
-# A grammar with shift-reduce conflicts
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_term1.exp b/chall/ply-2.2/test/yacc_term1.exp
deleted file mode 100644
index 40f9bdf..0000000
--- a/chall/ply-2.2/test/yacc_term1.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./yacc_term1.py:25: Illegal rule name 'NUMBER'. Already defined as a token.
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_term1.py b/chall/ply-2.2/test/yacc_term1.py
deleted file mode 100644
index bbc52da..0000000
--- a/chall/ply-2.2/test/yacc_term1.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_term1.py
-#
-# Terminal used on the left-hand-side
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'NUMBER : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_unused.exp b/chall/ply-2.2/test/yacc_unused.exp
deleted file mode 100644
index 6caafd2..0000000
--- a/chall/ply-2.2/test/yacc_unused.exp
+++ /dev/null
@@ -1,4 +0,0 @@
-./yacc_unused.py:63: Symbol 'COMMA' used, but not defined as a token or a rule.
-yacc: Symbol 'COMMA' is unreachable.
-yacc: Symbol 'exprlist' is unreachable.
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_unused.py b/chall/ply-2.2/test/yacc_unused.py
deleted file mode 100644
index 3a61f99..0000000
--- a/chall/ply-2.2/test/yacc_unused.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_unused.py
-#
-# A grammar with an unused rule
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-precedence = (
- ('left','PLUS','MINUS'),
- ('left','TIMES','DIVIDE'),
- ('right','UMINUS'),
- )
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_expr_list(t):
- 'exprlist : exprlist COMMA expression'
- pass
-
-def p_expr_list_2(t):
- 'exprlist : expression'
- pass
-
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-
diff --git a/chall/ply-2.2/test/yacc_uprec.exp b/chall/ply-2.2/test/yacc_uprec.exp
deleted file mode 100644
index eb9a398..0000000
--- a/chall/ply-2.2/test/yacc_uprec.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-./yacc_uprec.py:38: Nothing known about the precedence of 'UMINUS'
-ply.yacc.YaccError: Unable to construct parser.
diff --git a/chall/ply-2.2/test/yacc_uprec.py b/chall/ply-2.2/test/yacc_uprec.py
deleted file mode 100644
index 0e8711e..0000000
--- a/chall/ply-2.2/test/yacc_uprec.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -----------------------------------------------------------------------------
-# yacc_uprec.py
-#
-# A grammar with a bad %prec specifier
-# -----------------------------------------------------------------------------
-import sys
-sys.tracebacklimit = 0
-
-sys.path.insert(0,"..")
-import ply.yacc as yacc
-
-from calclex import tokens
-
-# Parsing rules
-
-# dictionary of names
-names = { }
-
-def p_statement_assign(t):
- 'statement : NAME EQUALS expression'
- names[t[1]] = t[3]
-
-def p_statement_expr(t):
- 'statement : expression'
- print t[1]
-
-def p_expression_binop(t):
- '''expression : expression PLUS expression
- | expression MINUS expression
- | expression TIMES expression
- | expression DIVIDE expression'''
- if t[2] == '+' : t[0] = t[1] + t[3]
- elif t[2] == '-': t[0] = t[1] - t[3]
- elif t[2] == '*': t[0] = t[1] * t[3]
- elif t[3] == '/': t[0] = t[1] / t[3]
-
-def p_expression_uminus(t):
- 'expression : MINUS expression %prec UMINUS'
- t[0] = -t[2]
-
-def p_expression_group(t):
- 'expression : LPAREN expression RPAREN'
- t[0] = t[2]
-
-def p_expression_number(t):
- 'expression : NUMBER'
- t[0] = t[1]
-
-def p_expression_name(t):
- 'expression : NAME'
- try:
- t[0] = names[t[1]]
- except LookupError:
- print "Undefined name '%s'" % t[1]
- t[0] = 0
-
-def p_error(t):
- print "Syntax error at '%s'" % t.value
-
-yacc.yacc()
-
-
-
-