mirror of
https://github.com/python/cpython.git
synced 2026-06-04 16:50:51 +00:00
Fix typos in InternalDocs/compiler.md (#149915)
This commit is contained in:
parent
686996e4d8
commit
13fee461c2
2 changed files with 7 additions and 7 deletions
|
|
@ -359,19 +359,19 @@
|
|||
These are similar to bytecode, but in some cases they are more abstract, and are
|
||||
resolved later into actual bytecode. The construction of this instruction sequence
|
||||
is handled by several functions that break the task down by various AST node types.
|
||||
The functions are all named `compiler_visit_{xx}` where *xx* is the name of the node
|
||||
The functions are all named `codegen_visit_{xx}` where *xx* is the name of the node
|
||||
type (such as `stmt`, `expr`, etc.). Each function receives a `struct compiler *`
|
||||
and `{xx}_ty` where *xx* is the AST node type. Typically these functions
|
||||
consist of a large 'switch' statement, branching based on the kind of
|
||||
node type passed to it. Simple things are handled inline in the
|
||||
'switch' statement with more complex transformations farmed out to other
|
||||
functions named `compiler_{xx}` with *xx* being a descriptive name of what is
|
||||
functions named `codegen_{xx}` with *xx* being a descriptive name of what is
|
||||
being handled.
|
||||
|
||||
When transforming an arbitrary AST node, use the `VISIT()` macro.
|
||||
The appropriate `compiler_visit_{xx}` function is called, based on the value
|
||||
The appropriate `codegen_visit_{xx}` function is called, based on the value
|
||||
passed in for <node type> (so `VISIT({c}, expr, {node})` calls
|
||||
`compiler_visit_expr({c}, {node})`). The `VISIT_SEQ()` macro is very similar,
|
||||
`codegen_visit_expr({c}, {node})`). The `VISIT_SEQ()` macro is very similar,
|
||||
but is called on AST node sequences (those values that were created as
|
||||
arguments to a node that used the '*' modifier).
|
||||
|
||||
|
|
@ -414,8 +414,8 @@
|
|||
line in the source code.
|
||||
|
||||
There are several helper functions that will emit pseudo-instructions
|
||||
and are named `compiler_{xx}()` where *xx* is what the function helps
|
||||
with (`list`, `boolop`, etc.). A rather useful one is `compiler_nameop()`.
|
||||
and are named `codegen_{xx}()` where *xx* is what the function helps
|
||||
with (`list`, `boolop`, etc.). A rather useful one is `codegen_nameop()`.
|
||||
This function looks up the scope of a variable and, based on the
|
||||
expression context, emits the proper opcode to load, store, or delete
|
||||
the variable.
|
||||
|
|
|
|||
|
|
@ -1708,7 +1708,7 @@ symtable_enter_type_param_block(struct symtable *st, identifier name,
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* VISIT, VISIT_SEQ and VIST_SEQ_TAIL take an ASDL type as their second argument.
|
||||
/* VISIT, VISIT_SEQ and VISIT_SEQ_TAIL take an ASDL type as their second argument.
|
||||
They use the ASDL name to synthesize the name of the C type and the visit
|
||||
function.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue