Skip to content

Commit 76f42ac

Browse files
committed
First day's progress on documentation
1 parent ce575ba commit 76f42ac

File tree

3 files changed

+588
-0
lines changed

3 files changed

+588
-0
lines changed

Tools/compiler/doc/astdocgen.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Lame substitute for a fine script to generate the table from ast.txt
2+
3+
from compiler import astgen
4+
5+
AST_DEF = '../compiler/ast.txt'
6+
7+
def sort(l):
8+
l = l[:]
9+
l.sort(lambda a, b: cmp(a.name, b.name))
10+
return l
11+
12+
def main():
13+
nodes = astgen.parse_spec(AST_DEF)
14+
print "\\begin{longtableiii}{lll}{class}{Node type}{Attribute}{Value}"
15+
print
16+
for node in sort(nodes):
17+
if node.argnames:
18+
print "\\lineiii{%s}{%s}{}" % (node.name, node.argnames[0])
19+
else:
20+
print "\\lineiii{%s}{}{}" % node.name
21+
22+
for arg in node.argnames[1:]:
23+
print "\\lineiii{}{%s}{}" % arg
24+
print "\\hline", "\n"
25+
print "\\end{longtableiii}"
26+
27+
28+
if __name__ == "__main__":
29+
main()
30+

Tools/compiler/doc/asttable.tex

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
\begin{longtableiii}{lll}{class}{Node type}{Attribute}{Value}
2+
3+
\lineiii{Add}{left}{left operand}
4+
\lineiii{}{right}{right operand}
5+
\hline
6+
7+
\lineiii{And}{nodes}{list of operands}
8+
\hline
9+
10+
\lineiii{AssAttr}{}{\emph{attribute as target of assignment}}
11+
\lineiii{}{expr}{expression on the left-hand side of the dot}
12+
\lineiii{}{attrname}{the attribute name, a string}
13+
\lineiii{}{flags}{XXX}
14+
\hline
15+
16+
\lineiii{AssList}{nodes}{list of list elements being assigned to}
17+
\hline
18+
19+
\lineiii{AssName}{name}{name being assigned to}
20+
\lineiii{}{flags}{XXX}
21+
\hline
22+
23+
\lineiii{AssTuple}{nodes}{list of tuple elements being assigned to}
24+
\hline
25+
26+
\lineiii{Assert}{test}{the expression to be tested}
27+
\lineiii{}{fail}{the value of the \exception{AssertionError}}
28+
\hline
29+
30+
\lineiii{Assign}{nodes}{a list of assignment targets, one per equal sign}
31+
\lineiii{}{expr}{the value being assigned}
32+
\hline
33+
34+
\lineiii{AugAssign}{node}{}
35+
\lineiii{}{op}{}
36+
\lineiii{}{expr}{}
37+
\hline
38+
39+
\lineiii{Backquote}{expr}{}
40+
\hline
41+
42+
\lineiii{Bitand}{nodes}{}
43+
\hline
44+
45+
\lineiii{Bitor}{nodes}{}
46+
\hline
47+
48+
\lineiii{Bitxor}{nodes}{}
49+
\hline
50+
51+
\lineiii{Break}{}{}
52+
\hline
53+
54+
\lineiii{CallFunc}{node}{expression for the callee}
55+
\lineiii{}{args}{a list of arguments}
56+
\lineiii{}{star_args}{the extended *-arg value}
57+
\lineiii{}{dstar_args}{the extended **-arg value}
58+
\hline
59+
60+
\lineiii{Class}{name}{the name of the class, a string}
61+
\lineiii{}{bases}{a list of base classes}
62+
\lineiii{}{doc}{doc string, a string or \code{None}}
63+
\lineiii{}{code}{the body of the class statement}
64+
\hline
65+
66+
\lineiii{Compare}{expr}{}
67+
\lineiii{}{ops}{}
68+
\hline
69+
70+
\lineiii{Const}{value}{}
71+
\hline
72+
73+
\lineiii{Continue}{}{}
74+
\hline
75+
76+
\lineiii{Dict}{items}{}
77+
\hline
78+
79+
\lineiii{Discard}{expr}{}
80+
\hline
81+
82+
\lineiii{Div}{left}{}
83+
\lineiii{}{right}{}
84+
\hline
85+
86+
\lineiii{Ellipsis}{}{}
87+
\hline
88+
89+
\lineiii{Exec}{expr}{}
90+
\lineiii{}{locals}{}
91+
\lineiii{}{globals}{}
92+
\hline
93+
94+
\lineiii{For}{assign}{}
95+
\lineiii{}{list}{}
96+
\lineiii{}{body}{}
97+
\lineiii{}{else_}{}
98+
\hline
99+
100+
\lineiii{From}{modname}{}
101+
\lineiii{}{names}{}
102+
\hline
103+
104+
\lineiii{Function}{name}{name used in def, a string}
105+
\lineiii{}{argnames}{list of argument names, as strings}
106+
\lineiii{}{defaults}{list of default values}
107+
\lineiii{}{flags}{xxx}
108+
\lineiii{}{doc}{doc string, a string or \code{None}}
109+
\lineiii{}{code}{the body of the function}
110+
\hline
111+
112+
\lineiii{Getattr}{expr}{}
113+
\lineiii{}{attrname}{}
114+
\hline
115+
116+
\lineiii{Global}{names}{}
117+
\hline
118+
119+
\lineiii{If}{tests}{}
120+
\lineiii{}{else_}{}
121+
\hline
122+
123+
\lineiii{Import}{names}{}
124+
\hline
125+
126+
\lineiii{Invert}{expr}{}
127+
\hline
128+
129+
\lineiii{Keyword}{name}{}
130+
\lineiii{}{expr}{}
131+
\hline
132+
133+
\lineiii{Lambda}{argnames}{}
134+
\lineiii{}{defaults}{}
135+
\lineiii{}{flags}{}
136+
\lineiii{}{code}{}
137+
\hline
138+
139+
\lineiii{LeftShift}{left}{}
140+
\lineiii{}{right}{}
141+
\hline
142+
143+
\lineiii{List}{nodes}{}
144+
\hline
145+
146+
\lineiii{ListComp}{expr}{}
147+
\lineiii{}{quals}{}
148+
\hline
149+
150+
\lineiii{ListCompFor}{assign}{}
151+
\lineiii{}{list}{}
152+
\lineiii{}{ifs}{}
153+
\hline
154+
155+
\lineiii{ListCompIf}{test}{}
156+
\hline
157+
158+
\lineiii{Mod}{left}{}
159+
\lineiii{}{right}{}
160+
\hline
161+
162+
\lineiii{Module}{doc}{doc string, a string or \code{None}}
163+
\lineiii{}{node}{body of the module, a \class{Stmt}}
164+
\hline
165+
166+
\lineiii{Mul}{left}{}
167+
\lineiii{}{right}{}
168+
\hline
169+
170+
\lineiii{Name}{name}{}
171+
\hline
172+
173+
\lineiii{Not}{expr}{}
174+
\hline
175+
176+
\lineiii{Or}{nodes}{}
177+
\hline
178+
179+
\lineiii{Pass}{}{}
180+
\hline
181+
182+
\lineiii{Power}{left}{}
183+
\lineiii{}{right}{}
184+
\hline
185+
186+
\lineiii{Print}{nodes}{}
187+
\lineiii{}{dest}{}
188+
\hline
189+
190+
\lineiii{Printnl}{nodes}{}
191+
\lineiii{}{dest}{}
192+
\hline
193+
194+
\lineiii{Raise}{expr1}{}
195+
\lineiii{}{expr2}{}
196+
\lineiii{}{expr3}{}
197+
\hline
198+
199+
\lineiii{Return}{value}{}
200+
\hline
201+
202+
\lineiii{RightShift}{left}{}
203+
\lineiii{}{right}{}
204+
\hline
205+
206+
\lineiii{Slice}{expr}{}
207+
\lineiii{}{flags}{}
208+
\lineiii{}{lower}{}
209+
\lineiii{}{upper}{}
210+
\hline
211+
212+
\lineiii{Sliceobj}{nodes}{list of statements}
213+
\hline
214+
215+
\lineiii{Stmt}{nodes}{}
216+
\hline
217+
218+
\lineiii{Sub}{left}{}
219+
\lineiii{}{right}{}
220+
\hline
221+
222+
\lineiii{Subscript}{expr}{}
223+
\lineiii{}{flags}{}
224+
\lineiii{}{subs}{}
225+
\hline
226+
227+
\lineiii{TryExcept}{body}{}
228+
\lineiii{}{handlers}{}
229+
\lineiii{}{else_}{}
230+
\hline
231+
232+
\lineiii{TryFinally}{body}{}
233+
\lineiii{}{final}{}
234+
\hline
235+
236+
\lineiii{Tuple}{nodes}{}
237+
\hline
238+
239+
\lineiii{UnaryAdd}{expr}{}
240+
\hline
241+
242+
\lineiii{UnarySub}{expr}{}
243+
\hline
244+
245+
\lineiii{While}{test}{}
246+
\lineiii{}{body}{}
247+
\lineiii{}{else_}{}
248+
\hline
249+
250+
\lineiii{Yield}{value}{}
251+
\hline
252+
253+
\end{longtableiii}

0 commit comments

Comments
 (0)