Contents

    1  Introduction

    2  Background

    3  Grammar
        3.1  Program
            3.1.1  file_input
            3.1.2  eval_input
        3.2  Statements
            3.2.1  stmt
            3.2.2  simple_stmt
            3.2.3  small_stmt
            3.2.4  expr_stmt
            3.2.5  testlist_list_plus
            3.2.6  augassign
            3.2.7  print_stmt
            3.2.8  del_stmt
            3.2.9  pass_stmt
            3.2.10  flow_stmt
            3.2.11  break_stmt
            3.2.12  continue_stmt
            3.2.13  return_stmt
            3.2.14  raise_stmt
            3.2.15  yield_stmt (NOT YET IMPLEMENTED)
            3.2.16  import_stmt
            3.2.17  import_stmt1
            3.2.18  import_stmt2
            3.2.19  import_as_name
            3.2.20  dotted_as_name
            3.2.21  dotted_name
            3.2.22  global_stmt
            3.2.23  exec_stmt (NOT YET IMPLEMENTED)
            3.2.24  assert_stmt
            3.2.25  compound_stmt
            3.2.26  if_stmt
            3.2.27  elif_list
            3.2.28  suite
            3.2.29  stmt_list_plus
            3.2.30  while_stmt
            3.2.31  for_stmt
            3.2.32  try_stmt
            3.2.33  except_clause_list_plus
            3.2.34  except_clause
            3.2.35  funcdef
            3.2.36  parameters
            3.2.37  varargslist
            3.2.38  fpdef
            3.2.39  fplist
            3.2.40  classdef
        3.3  Expressions
            3.3.1  tuple_or_test
            3.3.2  tuple
            3.3.3  test
            3.3.4  test_list
            3.3.5  testlist
            3.3.6  lambdef
            3.3.7  or_test
            3.3.8  and_test
            3.3.9  not_test
            3.3.10  comparison
            3.3.11  comp_op
            3.3.12  expr
            3.3.13  xor_expr
            3.3.14  and_expr
            3.3.15  shift_expr
            3.3.16  arith_expr
            3.3.17  term
            3.3.18  factor
            3.3.19  power
            3.3.20  trailer_list
            3.3.21  trailer
            3.3.22  arglist
            3.3.23  argument
            3.3.24  atom
            3.3.25  string_list_plus
            3.3.26  listmaker
            3.3.27  list_iter
            3.3.28  list_for
            3.3.29  list_if
            3.3.30  subscriptlist
            3.3.31  subscript
            3.3.32  sliceop
            3.3.33  exprlist
            3.3.34  target_tuple_or_expr
            3.3.35  target_tuple
            3.3.36  testlist_safe
            3.3.37  dictmaker
            3.3.38  ident

    4  Implementation
        4.1  Lexical and Syntax Analysis
        4.2  Code Generation
            4.2.1  Function Definitions
            4.2.2  Class Definitions
            4.2.3  Variable Assignments
            4.2.4  Function Application
            4.2.5  Importing Modules
        4.3  The Runtime System
            4.3.1  py-print
            4.3.2  number-[pts-Z-C-Z-G-1.gif]py-number%
            4.3.3  string-[pts-Z-C-Z-G-2.gif]py-string%
            4.3.4  procedure-[pts-Z-C-Z-G-3.gif]py-function%
            4.3.5  python-get-member
            4.3.6  python-get-attribute
            4.3.7  python-set-member!
            4.3.8  python-method-call
            4.3.9  py-call

    5  Future Work

    6  Conclusion