|
CIRCT 23.0.0git
|
Public Member Functions | |
| None | __init__ (self, TextIO out, int level=0) |
| None | line (self, str text="") |
| None | lines (self, *str texts) |
| None | write (self, str text) |
| None | access (self, str label) |
| Iterator[None] | indented (self) |
| Iterator[None] | block (self, str header, *str tail="") |
Protected Attributes | |
| _out | |
| _level | |
Stream indented source text to an output sink.
Wraps a `TextIO`-like `out` and tracks indentation as a stack of two-space
levels, so emit code never has to thread an `indent` string or hand-write
trailing newlines and doubled `{{` / `}}` braces. Every call writes through
to `out` immediately. The primitives are:
* `line(text)` -- write one line at the current indent (blank if empty).
* `block(header)` -- a context manager that writes `header {`, indents its
body, then closes with `}` (plus an optional `tail`, e.g. `;`).
* `access(label)` -- write an access specifier (`public:` / `private:`)
one level out from the members it introduces.
`write(text)` streams `text` verbatim (no indentation); it mirrors
`TextIO.write` so an `IndentedWriter` can itself stand in for a sink.
`indented()` opens a bare indent (e.g. a single-statement loop body)
without braces.
Definition at line 16 of file indented_writer.py.
| None esiaccel.codegen.indented_writer.IndentedWriter.__init__ | ( | self, | |
| TextIO | out, | ||
| int | level = 0 |
||
| ) |
Definition at line 36 of file indented_writer.py.
Referenced by synth.LongestPathCollection.drop_non_critical_paths(), and synth.LongestPathCollection.merge().
| None esiaccel.codegen.indented_writer.IndentedWriter.access | ( | self, | |
| str | label | ||
| ) |
Definition at line 52 of file indented_writer.py.
References esiaccel.codegen.indented_writer.IndentedWriter._level, esiaccel.codegen.indented_writer.IndentedWriter._out, and esiaccel.codegen.indented_writer.IndentedWriter.write().
| Iterator[None] esiaccel.codegen.indented_writer.IndentedWriter.block | ( | self, | |
| str | header, | ||
| *str | tail = "" |
||
| ) |
Definition at line 67 of file indented_writer.py.
References esiaccel.codegen.indented_writer.IndentedWriter._level, circt::ExportVerilog::OpLocMap::LineColPair.line, and esiaccel.codegen.indented_writer.IndentedWriter.line().
| Iterator[None] esiaccel.codegen.indented_writer.IndentedWriter.indented | ( | self | ) |
Definition at line 59 of file indented_writer.py.
References esiaccel.codegen.indented_writer.IndentedWriter._level.
| None esiaccel.codegen.indented_writer.IndentedWriter.line | ( | self, | |
| str | text = "" |
||
| ) |
Definition at line 40 of file indented_writer.py.
References esiaccel.codegen.indented_writer.IndentedWriter._out, and esiaccel.codegen.indented_writer.IndentedWriter.write().
Referenced by esiaccel.codegen.indented_writer.IndentedWriter.block(), and esiaccel.codegen.indented_writer.IndentedWriter.lines().
| None esiaccel.codegen.indented_writer.IndentedWriter.lines | ( | self, | |
| *str | texts | ||
| ) |
Definition at line 43 of file indented_writer.py.
References circt::ExportVerilog::OpLocMap::LineColPair.line, and esiaccel.codegen.indented_writer.IndentedWriter.line().
| None esiaccel.codegen.indented_writer.IndentedWriter.write | ( | self, | |
| str | text | ||
| ) |
Write `text` verbatim (no indentation). Mirrors `TextIO.write` so the writer can be passed to emitters that build pre-indented strings.
Definition at line 47 of file indented_writer.py.
References esiaccel.codegen.indented_writer.IndentedWriter._out, and esiaccel.codegen.indented_writer.IndentedWriter.write().
Referenced by esiaccel.codegen.indented_writer.IndentedWriter.access(), esiaccel.codegen.indented_writer.IndentedWriter.line(), and esiaccel.codegen.indented_writer.IndentedWriter.write().
|
protected |
Definition at line 38 of file indented_writer.py.
Referenced by esiaccel.codegen.indented_writer.IndentedWriter.access(), esiaccel.codegen.indented_writer.IndentedWriter.block(), and esiaccel.codegen.indented_writer.IndentedWriter.indented().
|
protected |
Definition at line 37 of file indented_writer.py.
Referenced by esiaccel.codegen.indented_writer.IndentedWriter.access(), esiaccel.codegen.indented_writer.IndentedWriter.line(), and esiaccel.codegen.indented_writer.IndentedWriter.write().