Beispiel #1
0
 def _codegen_impl(self, state: CodegenState) -> None:
     self.whitespace_before._codegen(state)
     with state.record_syntactic_position(self):
         state.add_token(self._get_tokens()[0])
         self.whitespace_between._codegen(state)
         state.add_token(self._get_tokens()[1])
     self.whitespace_after._codegen(state)
Beispiel #2
0
 def _codegen_impl(self, state: CodegenState) -> None:
     for h in self.header:
         h._codegen(state)
     for stmt in self.body:
         stmt._codegen(state)
     for f in self.footer:
         f._codegen(state)
     if self.has_trailing_newline:
         if len(state.tokens) == 0:
             # There was nothing in the header, footer, or body. Just add a newline
             # to preserve the trailing newline.
             state.add_token(state.default_newline)
     else:  # has_trailing_newline is false
         if len(state.tokens) > 0:
             # EmptyLine and all statements generate newlines, so we can be sure that
             # the last token (if we're not an empty file) is a newline.
             state.tokens.pop()
Beispiel #3
0
 def _codegen_impl(self, state: CodegenState) -> None:
     self.whitespace_before._codegen(state)
     state.add_token(self.value)
     self.whitespace_after._codegen(state)
Beispiel #4
0
 def _codegen_impl(self, state: CodegenState) -> None:
     state.add_token("*")
Beispiel #5
0
 def _codegen_impl(self, state: CodegenState) -> None:
     state.add_token(self._get_token())
     self.whitespace_after._codegen(state)
Beispiel #6
0
 def _codegen_impl(self, state: CodegenState) -> None:
     state.add_token(
         state.default_newline if self.value is None else self.value)