Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: third_party/cython/src/Cython/Plex/Actions.py

Issue 385073004: Adding cython v0.20.2 in third-party. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reference cython dev list thread. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #=======================================================================
2 #
3 # Python Lexical Analyser
4 #
5 # Actions for use in token specifications
6 #
7 #=======================================================================
8
9 class Action(object):
10
11 def perform(self, token_stream, text):
12 pass # abstract
13
14 def same_as(self, other):
15 return self is other
16
17
18 class Return(Action):
19 """
20 Internal Plex action which causes |value| to
21 be returned as the value of the associated token
22 """
23
24 def __init__(self, value):
25 self.value = value
26
27 def perform(self, token_stream, text):
28 return self.value
29
30 def same_as(self, other):
31 return isinstance(other, Return) and self.value == other.value
32
33 def __repr__(self):
34 return "Return(%s)" % repr(self.value)
35
36
37 class Call(Action):
38 """
39 Internal Plex action which causes a function to be called.
40 """
41
42 def __init__(self, function):
43 self.function = function
44
45 def perform(self, token_stream, text):
46 return self.function(token_stream, text)
47
48 def __repr__(self):
49 return "Call(%s)" % self.function.__name__
50
51 def same_as(self, other):
52 return isinstance(other, Call) and self.function is other.function
53
54
55 class Begin(Action):
56 """
57 Begin(state_name) is a Plex action which causes the Scanner to
58 enter the state |state_name|. See the docstring of Plex.Lexicon
59 for more information.
60 """
61
62 def __init__(self, state_name):
63 self.state_name = state_name
64
65 def perform(self, token_stream, text):
66 token_stream.begin(self.state_name)
67
68 def __repr__(self):
69 return "Begin(%s)" % self.state_name
70
71 def same_as(self, other):
72 return isinstance(other, Begin) and self.state_name == other.state_name
73
74
75 class Ignore(Action):
76 """
77 IGNORE is a Plex action which causes its associated token
78 to be ignored. See the docstring of Plex.Lexicon for more
79 information.
80 """
81 def perform(self, token_stream, text):
82 return None
83
84 def __repr__(self):
85 return "IGNORE"
86
87 IGNORE = Ignore()
88 #IGNORE.__doc__ = Ignore.__doc__
89
90 class Text(Action):
91 """
92 TEXT is a Plex action which causes the text of a token to
93 be returned as the value of the token. See the docstring of
94 Plex.Lexicon for more information.
95 """
96
97 def perform(self, token_stream, text):
98 return text
99
100 def __repr__(self):
101 return "TEXT"
102
103 TEXT = Text()
104 #TEXT.__doc__ = Text.__doc__
105
106
OLDNEW
« no previous file with comments | « third_party/cython/src/Cython/Plex/Actions.pxd ('k') | third_party/cython/src/Cython/Plex/DFA.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698