Skip to content

Commit

Permalink
parent commit1
Browse files Browse the repository at this point in the history
  • Loading branch information
pi19404 committed Oct 6, 2014
1 parent 0f4e0af commit ae84838
Show file tree
Hide file tree
Showing 10 changed files with 881 additions and 0 deletions.
40 changes: 40 additions & 0 deletions MLP.pyvision1

Large diffs are not rendered by default.

49 changes: 49 additions & 0 deletions calclex.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

# ------------------------------------------------------------
# calclex.py
#
# tokenizer for a simple expression evaluator for
# numbers and +,-,*,/
# ------------------------------------------------------------
import ply.lex as lex

# List of token names. This is always required
tokens = (
'NUMBER',
'PLUS',
'MINUS',
'TIMES',
'DIVIDE',
'LPAREN',
'RPAREN',
)

# Regular expression rules for simple tokens
t_PLUS = r'\+'
t_MINUS = r'-'
t_TIMES = r'\*'
t_DIVIDE = r'/'
t_LPAREN = r'\('
t_RPAREN = r'\)'

# A regular expression rule with some action code
def t_NUMBER(t):
r'\d+'
t.value = int(t.value)
return t

# Define a rule so we can track line numbers
def t_newline(t):
r'\n+'
t.lexer.lineno += len(t.value)

# A string containing ignored characters (spaces and tabs)
t_ignore = ' \t'

# Error handling rule
def t_error(t):
print "Illegal character '%s'" % t.value[0]
t.lexer.skip(1)

# Build the lexer
lexer = lex.lex()
Loading

0 comments on commit ae84838

Please sign in to comment.