PL/0编译器(java version) - MainFrame.java

   1:  /*
   2:   * To change this license header, choose License Headers in Project Properties.
   3:   * To change this template file, choose Tools | Templates
   4:   * and open the template in the editor.
   5:   */
   6:  package compiler;
   7:   
   8:  import fileSystem.fileFilter;
   9:  import java.io.BufferedReader;
  10:  import java.io.BufferedWriter;
  11:  import java.io.File;
  12:  import java.io.FileReader;
  13:  import java.io.FileWriter;
  14:  import java.io.IOException;
  15:  import java.util.Vector;
  16:  import java.util.logging.Level;
  17:  import java.util.logging.Logger;
  18:  import javax.swing.ImageIcon;
  19:  import javax.swing.JFileChooser;
  20:  import javax.swing.JFrame;
  21:  import javax.swing.JOptionPane;
  22:  import javax.swing.table.DefaultTableModel;
  23:   
  24:  /**
  25:   *
  26:   * @author jiangnan
  27:   */
  28:  public class MainFrame extends javax.swing.JFrame {
  29:   
  30:      /**
  31:       * Creates new form Main
  32:       */
  33:      public MainFrame() {
  34:          initComponents();
  35:      }
  36:   
  37:      /**
  38:       * This method is called from within the constructor to initialize the form.
  39:       * WARNING: Do NOT modify this code. The content of this method is always
  40:       * regenerated by the Form Editor.
  41:       */
  42:      @SuppressWarnings("unchecked")
  43:      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  44:      private void initComponents() {
  45:   
  46:          jDialog1 = new javax.swing.JDialog();
  47:          jLabel3 = new javax.swing.JLabel();
  48:          jButton6 = new javax.swing.JButton();
  49:          jLabel2 = new javax.swing.JLabel();
  50:          jDialog3 = new javax.swing.JDialog();
  51:          jLayeredPane2 = new javax.swing.JLayeredPane();
  52:          jPanel9 = new javax.swing.JPanel();
  53:          jPanel11 = new javax.swing.JPanel();
  54:          jScrollPane8 = new javax.swing.JScrollPane();
  55:          jTextArea5 = new javax.swing.JTextArea();
  56:          jButton9 = new javax.swing.JButton();
  57:          jPanel10 = new javax.swing.JPanel();
  58:          jLabel10 = new javax.swing.JLabel();
  59:          runtimeFrame = new javax.swing.JFrame();
  60:          jLayeredPane3 = new javax.swing.JLayeredPane();
  61:          jPanel7 = new javax.swing.JPanel();
  62:          jLabel11 = new javax.swing.JLabel();
  63:          jScrollPane4 = new javax.swing.JScrollPane();
  64:          jTextArea3 = new javax.swing.JTextArea();
  65:          jLabel12 = new javax.swing.JLabel();
  66:          jScrollPane5 = new javax.swing.JScrollPane();
  67:          jTextArea6 = new javax.swing.JTextArea();
  68:          jButton8 = new javax.swing.JButton();
  69:          jButton10 = new javax.swing.JButton();
  70:          jPanel8 = new javax.swing.JPanel();
  71:          jLabel9 = new javax.swing.JLabel();
  72:          jLayeredPane1 = new javax.swing.JLayeredPane();
  73:          jPanel1 = new javax.swing.JPanel();
  74:          jPanel2 = new javax.swing.JPanel();
  75:          jScrollPane1 = new javax.swing.JScrollPane();
  76:          jTextArea1 = new javax.swing.JTextArea();
  77:          jLabel4 = new javax.swing.JLabel();
  78:          jPanel3 = new javax.swing.JPanel();
  79:          jScrollPane2 = new javax.swing.JScrollPane();
  80:          jTable1 = new javax.swing.JTable();
  81:          jLabel5 = new javax.swing.JLabel();
  82:          jScrollPane7 = new javax.swing.JScrollPane();
  83:          jTextArea4 = new javax.swing.JTextArea();
  84:          jPanel4 = new javax.swing.JPanel();
  85:          jScrollPane3 = new javax.swing.JScrollPane();
  86:          jTextArea2 = new javax.swing.JTextArea();
  87:          jLabel6 = new javax.swing.JLabel();
  88:          jPanel5 = new javax.swing.JPanel();
  89:          jTextField1 = new javax.swing.JTextField();
  90:          jButton2 = new javax.swing.JButton();
  91:          jButton1 = new javax.swing.JButton();
  92:          jButton3 = new javax.swing.JButton();
  93:          jButton4 = new javax.swing.JButton();
  94:          jButton5 = new javax.swing.JButton();
  95:          jLabel7 = new javax.swing.JLabel();
  96:          jLabel8 = new javax.swing.JLabel();
  97:          jButton7 = new javax.swing.JButton();
  98:          jPanel6 = new javax.swing.JPanel();
  99:          jLabel1 = new javax.swing.JLabel();
 100:          jMenuBar1 = new javax.swing.JMenuBar();
 101:          jMenu1 = new javax.swing.JMenu();
 102:          jMenuItem1 = new javax.swing.JMenuItem();
 103:          jMenuItem2 = new javax.swing.JMenuItem();
 104:          jMenuItem3 = new javax.swing.JMenuItem();
 105:          jSeparator1 = new javax.swing.JPopupMenu.Separator();
 106:          jMenuItem5 = new javax.swing.JMenuItem();
 107:          jMenu2 = new javax.swing.JMenu();
 108:          jMenu4 = new javax.swing.JMenu();
 109:          jMenuItem6 = new javax.swing.JMenuItem();
 110:          jSeparator2 = new javax.swing.JPopupMenu.Separator();
 111:          jMenuItem7 = new javax.swing.JMenuItem();
 112:          jMenu3 = new javax.swing.JMenu();
 113:          jMenuItem4 = new javax.swing.JMenuItem();
 114:   
 115:          jDialog1.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
 116:          jDialog1.setIconImage(image.getImage());
 117:   
 118:          jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/background4.jpg"))); // NOI18N
 119:   
 120:          jButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint.png"))); // NOI18N
 121:          jButton6.addActionListener(new java.awt.event.ActionListener() {
 122:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 123:                  jButton6ActionPerformed(evt);
 124:              }
 125:          });
 126:   
 127:          jLabel2.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 128:          jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 129:          jLabel2.setText("确定");
 130:   
 131:          javax.swing.GroupLayout jDialog1Layout = new javax.swing.GroupLayout(jDialog1.getContentPane());
 132:          jDialog1.getContentPane().setLayout(jDialog1Layout);
 133:          jDialog1Layout.setHorizontalGroup(
 134:              jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 135:              .addGroup(jDialog1Layout.createSequentialGroup()
 136:                  .addGap(0, 0, Short.MAX_VALUE)
 137:                  .addComponent(jLabel3)
 138:                  .addGap(0, 0, Short.MAX_VALUE))
 139:              .addGroup(jDialog1Layout.createSequentialGroup()
 140:                  .addGap(132, 132, 132)
 141:                  .addGroup(jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
 142:                      .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 143:                      .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
 144:                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 145:          );
 146:          jDialog1Layout.setVerticalGroup(
 147:              jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 148:              .addGroup(jDialog1Layout.createSequentialGroup()
 149:                  .addComponent(jLabel3)
 150:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 151:                  .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
 152:                  .addGap(0, 0, Short.MAX_VALUE)
 153:                  .addComponent(jLabel2))
 154:          );
 155:   
 156:          jDialog3.setIconImage(image.getImage());
 157:   
 158:          jPanel9.setOpaque(false);
 159:   
 160:          jPanel11.setOpaque(false);
 161:   
 162:          jTextArea5.setEditable(false);
 163:          jTextArea5.setColumns(20);
 164:          jTextArea5.setFont(new java.awt.Font("微软雅黑", 0, 14)); // NOI18N
 165:          jTextArea5.setLineWrap(true);
 166:          jTextArea5.setRows(5);
 167:          jTextArea5.setOpaque(false);
 168:          jScrollPane8.setViewportView(jTextArea5);
 169:   
 170:          jButton9.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 171:          jButton9.setText("确定");
 172:          jButton9.setOpaque(false);
 173:          jButton9.setPreferredSize(new java.awt.Dimension(100, 100));
 174:          jButton9.addActionListener(new java.awt.event.ActionListener() {
 175:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 176:                  jButton9ActionPerformed(evt);
 177:              }
 178:          });
 179:   
 180:          javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
 181:          jPanel11.setLayout(jPanel11Layout);
 182:          jPanel11Layout.setHorizontalGroup(
 183:              jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 184:              .addGroup(jPanel11Layout.createSequentialGroup()
 185:                  .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 186:                      .addGroup(jPanel11Layout.createSequentialGroup()
 187:                          .addGap(211, 211, 211)
 188:                          .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 189:                      .addGroup(jPanel11Layout.createSequentialGroup()
 190:                          .addGap(20, 20, 20)
 191:                          .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 479, javax.swing.GroupLayout.PREFERRED_SIZE)))
 192:                  .addContainerGap(30, Short.MAX_VALUE))
 193:          );
 194:          jPanel11Layout.setVerticalGroup(
 195:              jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 196:              .addGroup(jPanel11Layout.createSequentialGroup()
 197:                  .addContainerGap()
 198:                  .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
 199:                  .addGap(18, 18, 18)
 200:                  .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
 201:                  .addContainerGap(48, Short.MAX_VALUE))
 202:          );
 203:   
 204:          javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
 205:          jPanel9.setLayout(jPanel9Layout);
 206:          jPanel9Layout.setHorizontalGroup(
 207:              jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 208:              .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 209:          );
 210:          jPanel9Layout.setVerticalGroup(
 211:              jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 212:              .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 213:          );
 214:   
 215:          jLabel10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/background3.jpg"))); // NOI18N
 216:   
 217:          javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
 218:          jPanel10.setLayout(jPanel10Layout);
 219:          jPanel10Layout.setHorizontalGroup(
 220:              jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 221:              .addGap(0, 529, Short.MAX_VALUE)
 222:              .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 223:                  .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 440, Short.MAX_VALUE))
 224:          );
 225:          jPanel10Layout.setVerticalGroup(
 226:              jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 227:              .addGap(0, 422, Short.MAX_VALUE)
 228:              .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 229:                  .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 422, Short.MAX_VALUE))
 230:          );
 231:   
 232:          javax.swing.GroupLayout jLayeredPane2Layout = new javax.swing.GroupLayout(jLayeredPane2);
 233:          jLayeredPane2.setLayout(jLayeredPane2Layout);
 234:          jLayeredPane2Layout.setHorizontalGroup(
 235:              jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 236:              .addGap(0, 529, Short.MAX_VALUE)
 237:              .addGroup(jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 238:                  .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 239:              .addGroup(jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 240:                  .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 241:          );
 242:          jLayeredPane2Layout.setVerticalGroup(
 243:              jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 244:              .addGap(0, 422, Short.MAX_VALUE)
 245:              .addGroup(jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 246:                  .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 247:              .addGroup(jLayeredPane2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 248:                  .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 249:          );
 250:          jLayeredPane2.setLayer(jPanel9, javax.swing.JLayeredPane.DEFAULT_LAYER);
 251:          jLayeredPane2.setLayer(jPanel10, javax.swing.JLayeredPane.DEFAULT_LAYER);
 252:   
 253:          javax.swing.GroupLayout jDialog3Layout = new javax.swing.GroupLayout(jDialog3.getContentPane());
 254:          jDialog3.getContentPane().setLayout(jDialog3Layout);
 255:          jDialog3Layout.setHorizontalGroup(
 256:              jDialog3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 257:              .addGap(0, 529, Short.MAX_VALUE)
 258:              .addGroup(jDialog3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 259:                  .addComponent(jLayeredPane2))
 260:          );
 261:          jDialog3Layout.setVerticalGroup(
 262:              jDialog3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 263:              .addGap(0, 422, Short.MAX_VALUE)
 264:              .addGroup(jDialog3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 265:                  .addComponent(jLayeredPane2))
 266:          );
 267:   
 268:          runtimeFrame.setIconImage(image.getImage());
 269:   
 270:          jPanel7.setOpaque(false);
 271:   
 272:          jLabel11.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 273:          jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 274:          jLabel11.setText("INPUT");
 275:   
 276:          jScrollPane4.setOpaque(false);
 277:   
 278:          jTextArea3.setColumns(20);
 279:          jTextArea3.setFont(new java.awt.Font("Monaco", 0, 14)); // NOI18N
 280:          jTextArea3.setRows(5);
 281:          jTextArea3.setOpaque(false);
 282:          jScrollPane4.setViewportView(jTextArea3);
 283:   
 284:          jLabel12.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 285:          jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 286:          jLabel12.setText("OUTPUT");
 287:   
 288:          jScrollPane5.setOpaque(false);
 289:   
 290:          jTextArea6.setEditable(false);
 291:          jTextArea6.setColumns(20);
 292:          jTextArea6.setFont(new java.awt.Font("Monaco", 0, 14)); // NOI18N
 293:          jTextArea6.setRows(5);
 294:          jTextArea6.setOpaque(false);
 295:          jScrollPane5.setViewportView(jTextArea6);
 296:   
 297:          jButton8.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 298:          jButton8.setText("RUN");
 299:          jButton8.setOpaque(false);
 300:          jButton8.addActionListener(new java.awt.event.ActionListener() {
 301:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 302:                  jButton8ActionPerformed(evt);
 303:              }
 304:          });
 305:   
 306:          jButton10.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 307:          jButton10.setText("EXIT");
 308:          jButton10.addActionListener(new java.awt.event.ActionListener() {
 309:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 310:                  jButton10ActionPerformed(evt);
 311:              }
 312:          });
 313:   
 314:          javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
 315:          jPanel7.setLayout(jPanel7Layout);
 316:          jPanel7Layout.setHorizontalGroup(
 317:              jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 318:              .addGroup(jPanel7Layout.createSequentialGroup()
 319:                  .addGap(36, 36, 36)
 320:                  .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 321:                      .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
 322:                      .addGroup(jPanel7Layout.createSequentialGroup()
 323:                          .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 324:                              .addComponent(jLabel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 325:                              .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 207, javax.swing.GroupLayout.PREFERRED_SIZE))
 326:                          .addGap(18, 18, 18)
 327:                          .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
 328:                          .addGap(28, 28, 28)
 329:                          .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 330:                              .addComponent(jScrollPane5)
 331:                              .addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE))))
 332:                  .addContainerGap(90, Short.MAX_VALUE))
 333:          );
 334:          jPanel7Layout.setVerticalGroup(
 335:              jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 336:              .addGroup(jPanel7Layout.createSequentialGroup()
 337:                  .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 338:                      .addGroup(jPanel7Layout.createSequentialGroup()
 339:                          .addGap(62, 62, 62)
 340:                          .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 341:                              .addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
 342:                              .addComponent(jLabel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 343:                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 344:                          .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 345:                              .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
 346:                              .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)))
 347:                      .addGroup(jPanel7Layout.createSequentialGroup()
 348:                          .addGap(148, 148, 148)
 349:                          .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
 350:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 351:                  .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
 352:                  .addContainerGap(19, Short.MAX_VALUE))
 353:          );
 354:   
 355:          jLabel9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/background3.jpg"))); // NOI18N
 356:   
 357:          javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
 358:          jPanel8.setLayout(jPanel8Layout);
 359:          jPanel8Layout.setHorizontalGroup(
 360:              jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 361:              .addGap(0, 688, Short.MAX_VALUE)
 362:              .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 363:                  .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 688, Short.MAX_VALUE))
 364:          );
 365:          jPanel8Layout.setVerticalGroup(
 366:              jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 367:              .addGap(0, 454, Short.MAX_VALUE)
 368:              .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 369:                  .addGroup(jPanel8Layout.createSequentialGroup()
 370:                      .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 454, javax.swing.GroupLayout.PREFERRED_SIZE)
 371:                      .addGap(0, 0, Short.MAX_VALUE)))
 372:          );
 373:   
 374:          javax.swing.GroupLayout jLayeredPane3Layout = new javax.swing.GroupLayout(jLayeredPane3);
 375:          jLayeredPane3.setLayout(jLayeredPane3Layout);
 376:          jLayeredPane3Layout.setHorizontalGroup(
 377:              jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 378:              .addGap(0, 688, Short.MAX_VALUE)
 379:              .addGroup(jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 380:                  .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 381:              .addGroup(jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 382:                  .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 383:          );
 384:          jLayeredPane3Layout.setVerticalGroup(
 385:              jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 386:              .addGap(0, 454, Short.MAX_VALUE)
 387:              .addGroup(jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 388:                  .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 389:              .addGroup(jLayeredPane3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 390:                  .addGroup(jLayeredPane3Layout.createSequentialGroup()
 391:                      .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 392:                      .addGap(0, 0, Short.MAX_VALUE)))
 393:          );
 394:          jLayeredPane3.setLayer(jPanel7, javax.swing.JLayeredPane.DEFAULT_LAYER);
 395:          jLayeredPane3.setLayer(jPanel8, javax.swing.JLayeredPane.DEFAULT_LAYER);
 396:   
 397:          javax.swing.GroupLayout runtimeFrameLayout = new javax.swing.GroupLayout(runtimeFrame.getContentPane());
 398:          runtimeFrame.getContentPane().setLayout(runtimeFrameLayout);
 399:          runtimeFrameLayout.setHorizontalGroup(
 400:              runtimeFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 401:              .addGap(0, 688, Short.MAX_VALUE)
 402:              .addGroup(runtimeFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 403:                  .addComponent(jLayeredPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 404:          );
 405:          runtimeFrameLayout.setVerticalGroup(
 406:              runtimeFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 407:              .addGap(0, 454, Short.MAX_VALUE)
 408:              .addGroup(runtimeFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 409:                  .addComponent(jLayeredPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 410:          );
 411:   
 412:          setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 413:          setTitle("PL/0 编译器");
 414:          setIconImage(image.getImage());
 415:          setResizable(false);
 416:   
 417:          jLayeredPane1.setPreferredSize(new java.awt.Dimension(1191, 450));
 418:   
 419:          jPanel1.setOpaque(false);
 420:   
 421:          jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
 422:          jPanel2.setOpaque(false);
 423:          jPanel2.setPreferredSize(new java.awt.Dimension(305, 433));
 424:   
 425:          jScrollPane1.setOpaque(false);
 426:   
 427:          jTextArea1.setEditable(false);
 428:          jTextArea1.setColumns(20);
 429:          jTextArea1.setFont(new java.awt.Font("Monaco", 0, 18)); // NOI18N
 430:          jTextArea1.setRows(5);
 431:          jTextArea1.setOpaque(false);
 432:          jScrollPane1.setViewportView(jTextArea1);
 433:   
 434:          jLabel4.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 435:          jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 436:          jLabel4.setText("PL/0 Source Code");
 437:   
 438:          javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
 439:          jPanel2.setLayout(jPanel2Layout);
 440:          jPanel2Layout.setHorizontalGroup(
 441:              jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 442:              .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
 443:              .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 444:          );
 445:          jPanel2Layout.setVerticalGroup(
 446:              jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 447:              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
 448:                  .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
 449:                  .addGap(0, 0, Short.MAX_VALUE)
 450:                  .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 396, javax.swing.GroupLayout.PREFERRED_SIZE)
 451:                  .addContainerGap())
 452:          );
 453:   
 454:          jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
 455:          jPanel3.setOpaque(false);
 456:          jPanel3.setPreferredSize(new java.awt.Dimension(243, 433));
 457:   
 458:          jTable1.setFont(new java.awt.Font("Comic Sans MS", 0, 14)); // NOI18N
 459:          jTable1.setModel(new javax.swing.table.DefaultTableModel(
 460:              new Object [][] {
 461:                  {null, null, null, null, null, null},
 462:                  {null, null, null, null, null, null},
 463:                  {null, null, null, null, null, null},
 464:                  {null, null, null, null, null, null},
 465:                  {null, null, null, null, null, null},
 466:                  {null, null, null, null, null, null},
 467:                  {null, null, null, null, null, null},
 468:                  {null, null, null, null, null, null},
 469:                  {null, null, null, null, null, null},
 470:                  {null, null, null, null, null, null}
 471:              },
 472:              new String [] {
 473:                  "Name", "Type", "Value", "Level", "Address", "size"
 474:              }
 475:          ) {
 476:              Class[] types = new Class [] {
 477:                  java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Object.class
 478:              };
 479:   
 480:              public Class getColumnClass(int columnIndex) {
 481:                  return types [columnIndex];
 482:              }
 483:          });
 484:          jTable1.setOpaque(false);
 485:          jTable1.getTableHeader().setReorderingAllowed(false);
 486:          jScrollPane2.setViewportView(jTable1);
 487:          if (jTable1.getColumnModel().getColumnCount() > 0) {
 488:              jTable1.getColumnModel().getColumn(0).setResizable(false);
 489:              jTable1.getColumnModel().getColumn(1).setResizable(false);
 490:              jTable1.getColumnModel().getColumn(2).setResizable(false);
 491:              jTable1.getColumnModel().getColumn(3).setResizable(false);
 492:              jTable1.getColumnModel().getColumn(4).setResizable(false);
 493:              jTable1.getColumnModel().getColumn(5).setResizable(false);
 494:          }
 495:   
 496:          jLabel5.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 497:          jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 498:          jLabel5.setText("Symbol Table");
 499:   
 500:          jTextArea4.setEditable(false);
 501:          jTextArea4.setColumns(20);
 502:          jTextArea4.setFont(new java.awt.Font("Comic Sans MS", 1, 14)); // NOI18N
 503:          jTextArea4.setRows(5);
 504:          jScrollPane7.setViewportView(jTextArea4);
 505:   
 506:          javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
 507:          jPanel3.setLayout(jPanel3Layout);
 508:          jPanel3Layout.setHorizontalGroup(
 509:              jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 510:              .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
 511:              .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
 512:              .addComponent(jScrollPane7)
 513:          );
 514:          jPanel3Layout.setVerticalGroup(
 515:              jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 516:              .addGroup(jPanel3Layout.createSequentialGroup()
 517:                  .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
 518:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 519:                  .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
 520:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 521:                  .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
 522:                  .addContainerGap())
 523:          );
 524:   
 525:          jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
 526:          jPanel4.setOpaque(false);
 527:          jPanel4.setPreferredSize(new java.awt.Dimension(271, 433));
 528:   
 529:          jScrollPane3.setOpaque(false);
 530:          jScrollPane3.setPreferredSize(new java.awt.Dimension(203, 101));
 531:   
 532:          jTextArea2.setEditable(false);
 533:          jTextArea2.setBackground(new java.awt.Color(250, 250, 250));
 534:          jTextArea2.setColumns(20);
 535:          jTextArea2.setFont(new java.awt.Font("Comic Sans MS", 0, 13)); // NOI18N
 536:          jTextArea2.setRows(5);
 537:          jTextArea2.setName(""); // NOI18N
 538:          jTextArea2.setOpaque(false);
 539:          jScrollPane3.setViewportView(jTextArea2);
 540:   
 541:          jLabel6.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 542:          jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
 543:          jLabel6.setText("Generated P-code");
 544:   
 545:          javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
 546:          jPanel4.setLayout(jPanel4Layout);
 547:          jPanel4Layout.setHorizontalGroup(
 548:              jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 549:              .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 267, Short.MAX_VALUE)
 550:              .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 551:          );
 552:          jPanel4Layout.setVerticalGroup(
 553:              jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 554:              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
 555:                  .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)
 556:                  .addGap(0, 0, 0)
 557:                  .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 386, javax.swing.GroupLayout.PREFERRED_SIZE))
 558:          );
 559:   
 560:          jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder());
 561:          jPanel5.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
 562:          jPanel5.setOpaque(false);
 563:          jPanel5.setPreferredSize(new java.awt.Dimension(352, 433));
 564:   
 565:          jTextField1.setEditable(false);
 566:          jTextField1.setFont(new java.awt.Font("Monaco", 0, 12)); // NOI18N
 567:          jTextField1.addActionListener(new java.awt.event.ActionListener() {
 568:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 569:                  jTextField1ActionPerformed(evt);
 570:              }
 571:          });
 572:   
 573:          jButton2.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 574:          jButton2.setText("打开文件");
 575:          jButton2.setOpaque(false);
 576:          jButton2.addActionListener(new java.awt.event.ActionListener() {
 577:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 578:                  jButton2ActionPerformed(evt);
 579:              }
 580:          });
 581:   
 582:          jButton1.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 583:          jButton1.setText("编译");
 584:          jButton1.setOpaque(false);
 585:          jButton1.addActionListener(new java.awt.event.ActionListener() {
 586:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 587:                  jButton1ActionPerformed(evt);
 588:              }
 589:          });
 590:   
 591:          jButton3.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 592:          jButton3.setText("运行");
 593:          jButton3.setOpaque(false);
 594:          jButton3.addActionListener(new java.awt.event.ActionListener() {
 595:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 596:                  jButton3ActionPerformed(evt);
 597:              }
 598:          });
 599:   
 600:          jButton4.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
 601:          jButton4.setText("符号表");
 602:          jButton4.setMaximumSize(new java.awt.Dimension(100, 100));
 603:          jButton4.setMinimumSize(new java.awt.Dimension(100, 100));
 604:          jButton4.setOpaque(false);
 605:          jButton4.setPreferredSize(new java.awt.Dimension(100, 100));
 606:          jButton4.addActionListener(new java.awt.event.ActionListener() {
 607:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 608:                  jButton4ActionPerformed(evt);
 609:              }
 610:          });
 611:   
 612:          jButton5.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
   1:          jButton5.setText("pcode");
   2:          jButton5.setMaximumSize(new java.awt.Dimension(100, 100));
   3:          jButton5.setMinimumSize(new java.awt.Dimension(100, 100));
   4:          jButton5.setOpaque(false);
   5:          jButton5.setPreferredSize(new java.awt.Dimension(100, 100));
   6:          jButton5.addActionListener(new java.awt.event.ActionListener() {
   7:              public void actionPerformed(java.awt.event.ActionEvent evt) {
   8:                  jButton5ActionPerformed(evt);
   9:              }
  10:          });
  11:   
  12:          jLabel7.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
  13:          jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  14:          jLabel7.setText("DashBoard");
  15:   
  16:          jLabel8.setFont(new java.awt.Font("Comic Sans MS", 1, 16)); // NOI18N
  17:          jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  18:          jLabel8.setText("File Name:");
  19:   
  20:          jButton7.setFont(new java.awt.Font("微软雅黑", 1, 14)); // NOI18N
  21:          jButton7.setText("错误信息");
  22:          jButton7.addActionListener(new java.awt.event.ActionListener() {
  23:              public void actionPerformed(java.awt.event.ActionEvent evt) {
  24:                  jButton7ActionPerformed(evt);
  25:              }
  26:          });
  27:   
  28:          javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
  29:          jPanel5.setLayout(jPanel5Layout);
  30:          jPanel5Layout.setHorizontalGroup(
  31:              jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  32:              .addGroup(jPanel5Layout.createSequentialGroup()
  33:                  .addContainerGap()
  34:                  .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
  35:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  36:                  .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
  37:                  .addGap(0, 29, Short.MAX_VALUE))
  38:              .addGroup(jPanel5Layout.createSequentialGroup()
  39:                  .addGap(30, 30, 30)
  40:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  41:                      .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
  42:                      .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  43:                      .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  44:                  .addGap(18, 18, 18)
  45:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  46:                      .addComponent(jButton5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  47:                      .addComponent(jButton4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  48:                      .addComponent(jButton7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  49:                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  50:              .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  51:          );
  52:          jPanel5Layout.setVerticalGroup(
  53:              jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  54:              .addGroup(jPanel5Layout.createSequentialGroup()
  55:                  .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
  56:                  .addGap(18, 18, 18)
  57:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  58:                      .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
  59:                      .addComponent(jTextField1))
  60:                  .addGap(18, 18, 18)
  61:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  62:                      .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  63:                      .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
  64:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  65:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  66:                      .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  67:                      .addComponent(jButton5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  68:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  69:                  .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  70:                      .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
  71:                      .addComponent(jButton7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  72:                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  73:          );
  74:   
  75:          javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  76:          jPanel1.setLayout(jPanel1Layout);
  77:          jPanel1Layout.setHorizontalGroup(
  78:              jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  79:              .addGroup(jPanel1Layout.createSequentialGroup()
  80:                  .addGap(305, 305, 305)
  81:                  .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE)
  82:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  83:                  .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, 238, Short.MAX_VALUE)
  84:                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  85:                  .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 364, javax.swing.GroupLayout.PREFERRED_SIZE))
  86:              .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  87:                  .addGroup(jPanel1Layout.createSequentialGroup()
  88:                      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
  89:                      .addGap(0, 891, Short.MAX_VALUE)))
  90:          );
  91:          jPanel1Layout.setVerticalGroup(
  92:              jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  93:              .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  94:              .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  95:              .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  96:              .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  97:                  .addGroup(jPanel1Layout.createSequentialGroup()
  98:                      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  99:                      .addGap(0, 0, Short.MAX_VALUE)))
 100:          );
 101:   
 102:          jPanel6.setPreferredSize(new java.awt.Dimension(1185, 450));
 103:   
 104:          jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/background3.jpg"))); // NOI18N
 105:          jLabel1.setPreferredSize(new java.awt.Dimension(1185, 450));
 106:   
 107:          javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
 108:          jPanel6.setLayout(jPanel6Layout);
 109:          jPanel6Layout.setHorizontalGroup(
 110:              jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 111:              .addGroup(jPanel6Layout.createSequentialGroup()
 112:                  .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 113:                  .addGap(0, 0, Short.MAX_VALUE))
 114:          );
 115:          jPanel6Layout.setVerticalGroup(
 116:              jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 117:              .addGroup(jPanel6Layout.createSequentialGroup()
 118:                  .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 119:                  .addGap(0, 0, Short.MAX_VALUE))
 120:          );
 121:   
 122:          javax.swing.GroupLayout jLayeredPane1Layout = new javax.swing.GroupLayout(jLayeredPane1);
 123:          jLayeredPane1.setLayout(jLayeredPane1Layout);
 124:          jLayeredPane1Layout.setHorizontalGroup(
 125:              jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 126:              .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 127:              .addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 128:                  .addGroup(jLayeredPane1Layout.createSequentialGroup()
 129:                      .addGap(0, 0, Short.MAX_VALUE)
 130:                      .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 131:                      .addGap(0, 0, Short.MAX_VALUE)))
 132:          );
 133:          jLayeredPane1Layout.setVerticalGroup(
 134:              jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 135:              .addGroup(jLayeredPane1Layout.createSequentialGroup()
 136:                  .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 137:                  .addGap(0, 17, Short.MAX_VALUE))
 138:              .addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 139:                  .addGroup(jLayeredPane1Layout.createSequentialGroup()
 140:                      .addGap(0, 0, Short.MAX_VALUE)
 141:                      .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 142:                      .addGap(0, 0, Short.MAX_VALUE)))
 143:          );
 144:          jLayeredPane1.setLayer(jPanel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
 145:          jLayeredPane1.setLayer(jPanel6, javax.swing.JLayeredPane.DEFAULT_LAYER);
 146:   
 147:          jMenuBar1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 148:          jMenuBar1.setOpaque(false);
 149:   
 150:          jMenu1.setText("文件(F)");
 151:          jMenu1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 152:   
 153:          jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
 154:          jMenuItem1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 155:          jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 156:          jMenuItem1.setText("新建(N)");
 157:          jMenu1.add(jMenuItem1);
 158:   
 159:          jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
 160:          jMenuItem2.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 161:          jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 162:          jMenuItem2.setText("打开(O)");
 163:          jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
 164:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 165:                  jMenuItem2ActionPerformed(evt);
 166:              }
 167:          });
 168:          jMenu1.add(jMenuItem2);
 169:   
 170:          jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
 171:          jMenuItem3.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 172:          jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 173:          jMenuItem3.setText("保存(S)");
 174:          jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
 175:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 176:                  jMenuItem3ActionPerformed(evt);
 177:              }
 178:          });
 179:          jMenu1.add(jMenuItem3);
 180:          jMenu1.add(jSeparator1);
 181:   
 182:          jMenuItem5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
 183:          jMenuItem5.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 184:          jMenuItem5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 185:          jMenuItem5.setText("退出");
 186:          jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
 187:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 188:                  jMenuItem5ActionPerformed(evt);
 189:              }
 190:          });
 191:          jMenu1.add(jMenuItem5);
 192:   
 193:          jMenuBar1.add(jMenu1);
 194:   
 195:          jMenu2.setText("编辑");
 196:          jMenu2.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 197:          jMenuBar1.add(jMenu2);
 198:   
 199:          jMenu4.setText("运行");
 200:          jMenu4.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 201:   
 202:          jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_MASK));
 203:          jMenuItem6.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 204:          jMenuItem6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 205:          jMenuItem6.setText("编译(L)");
 206:          jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
 207:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 208:                  jMenuItem6ActionPerformed(evt);
 209:              }
 210:          });
 211:          jMenu4.add(jMenuItem6);
 212:          jMenu4.add(jSeparator2);
 213:   
 214:          jMenuItem7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, java.awt.event.InputEvent.CTRL_MASK));
 215:          jMenuItem7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 216:          jMenuItem7.setText("运行(R)");
 217:          jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
 218:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 219:                  jMenuItem7ActionPerformed(evt);
 220:              }
 221:          });
 222:          jMenu4.add(jMenuItem7);
 223:   
 224:          jMenuBar1.add(jMenu4);
 225:   
 226:          jMenu3.setText("帮助(H)");
 227:          jMenu3.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 228:   
 229:          jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_MASK));
 230:          jMenuItem4.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 14)); // NOI18N
 231:          jMenuItem4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/PowerPoint-icon.png"))); // NOI18N
 232:          jMenuItem4.setText("关于(G)...");
 233:          jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
 234:              public void actionPerformed(java.awt.event.ActionEvent evt) {
 235:                  jMenuItem4ActionPerformed(evt);
 236:              }
 237:          });
 238:          jMenu3.add(jMenuItem4);
 239:   
 240:          jMenuBar1.add(jMenu3);
 241:   
 242:          setJMenuBar(jMenuBar1);
 243:   
 244:          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 245:          getContentPane().setLayout(layout);
 246:          layout.setHorizontalGroup(
 247:              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 248:              .addGroup(layout.createSequentialGroup()
 249:                  .addGap(0, 0, Short.MAX_VALUE)
 250:                  .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 251:                  .addGap(0, 0, Short.MAX_VALUE))
 252:          );
 253:          layout.setVerticalGroup(
 254:              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 255:              .addGroup(layout.createSequentialGroup()
 256:                  .addGap(0, 0, Short.MAX_VALUE)
 257:                  .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 258:                  .addGap(0, 0, Short.MAX_VALUE))
 259:          );
 260:   
 261:          pack();
 262:      }// </editor-fold>//GEN-END:initComponents
 263:   
 264:      private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
 265:          JFileChooser filechooser = new JFileChooser();
 266:          filechooser.addChoosableFileFilter(new fileFilter("pl0"));
 267:          filechooser.addChoosableFileFilter(new fileFilter("txt"));
 268:          int ret = filechooser.showOpenDialog(MainFrame.this);
 269:          if (ret == JFileChooser.APPROVE_OPTION) {
 270:              try {
 271:                  selected = filechooser.getSelectedFile();
 272:                  jTextField1.setText(selected.getName());
 273:                  BufferedReader br = new BufferedReader(new FileReader(selected));
 274:                  jTextArea1.read(br, "GBK");
 275:                  br.close();
 276:              } catch (Exception e) {
 277:                  e.printStackTrace();
 278:                  System.out.println("***can't open selected File***");
 279:              }
 280:          }
 281:   
 282:   
 283:      }//GEN-LAST:event_jButton2ActionPerformed
 284:   
 285:      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
 286:   
 287:          if (selected != null) {
 288:              compiler = new PL0(selected.getPath());
 289:              boolean compileRet = compiler.compile();
 290:              if (compileRet) {
 291:                  JOptionPane.showConfirmDialog(MainFrame.this, "编译成功", "编译结果", JOptionPane.OK_OPTION);
 292:              } else {
 293:                  JOptionPane.showConfirmDialog(MainFrame.this, "编译失败", "编译结果", JOptionPane.ERROR_MESSAGE);
 294:              }
 295:          } else {
 296:              int retbtn = JOptionPane.showConfirmDialog(MainFrame.this,
 297:                      "尚未打开文件", "ERROR",
 298:                      JOptionPane.ERROR_MESSAGE);
 299:              if (retbtn == JOptionPane.YES_OPTION) {
 300:                  JFileChooser filechooser = new JFileChooser();
 301:                  filechooser.addChoosableFileFilter(new fileFilter("pl0"));
 302:                  filechooser.addChoosableFileFilter(new fileFilter("txt"));
 303:                  int ret = filechooser.showOpenDialog(MainFrame.this);
 304:                  if (ret == JFileChooser.APPROVE_OPTION) {
 305:                      try {
 306:                          selected = filechooser.getSelectedFile();
 307:                          jTextField1.setText(selected.getName());
 308:                          BufferedReader br = new BufferedReader(new FileReader(selected));
 309:                          jTextArea1.read(br, "GBK");
 310:                          br.close();
 311:                      } catch (Exception e) {
 312:   
 313:                      }
 314:                  }
 315:              }
 316:          }
 317:   
 318:      }//GEN-LAST:event_jButton1ActionPerformed
 319:   
 320:      private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
 321:          // TODO add your handling code here:
 322:      }//GEN-LAST:event_jTextField1ActionPerformed
 323:   
 324:      private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
 325:          // TODO add your handling code here:
 326:   
 327:      }//GEN-LAST:event_jMenuItem2ActionPerformed
 328:   
 329:      private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
 330:          // TODO add your handling code here:
 331:      }//GEN-LAST:event_jMenuItem3ActionPerformed
 332:   
 333:      private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
 334:          // TODO add your handling code here:
 335:   
 336:          jDialog1.setVisible(true);
 337:          jDialog1.setTitle("关于本作者");
 338:          jDialog1.pack();
 339:          jDialog1.setLocationRelativeTo(null);
 340:          jDialog1.setResizable(false);
 341:      }//GEN-LAST:event_jMenuItem4ActionPerformed
 342:   
 343:      private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
 344:   
 345:          int retuenValue = JOptionPane.showConfirmDialog(null, " 确定要退出系统吗?", "是否退出", JOptionPane.YES_NO_OPTION);
 346:          if (retuenValue == JOptionPane.YES_OPTION) {
 347:              this.setVisible(false);
 348:              this.dispose();
 349:              System.exit(0);
 350:          }
 351:   
 352:      }//GEN-LAST:event_jMenuItem5ActionPerformed
 353:   
 354:      private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
 355:          // TODO add your handling code here:
 356:   
 357:      }//GEN-LAST:event_jMenuItem6ActionPerformed
 358:   
 359:      private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
 360:          // TODO add your handling code here:
 361:      }//GEN-LAST:event_jMenuItem7ActionPerformed
 362:   
 363:      private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
 364:   
 365:          if (compiler != null) {
 366:              runtimeFrame.setVisible(true);
 367:              runtimeFrame.setTitle("RUNTIME STACK");
 368:              runtimeFrame.pack();
 369:              runtimeFrame.setLocationRelativeTo(null);
 370:              runtimeFrame.setResizable(false);
 371:   
 372:          } else {
 373:              JOptionPane.showConfirmDialog(MainFrame.this, "尚未编译,无法运行", "ERROR", JOptionPane.ERROR_MESSAGE);
 374:          }
 375:   
 376:      }//GEN-LAST:event_jButton3ActionPerformed
 377:   
 378:      private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
 379:          BufferedReader br = null;
 380:          try {
 381:              tablemodel = new DefaultTableModel() {
 382:                  @Override
 383:                  public boolean isCellEditable(int row, int cloum) {
 384:                      return false;
 385:                  }
 386:              };
 387:              for (String item : symboltableHead) {
 388:                  tablemodel.addColumn(item);
 389:              }
 390:              try {
 391:                  if (compiler != null) {
 392:                      SymbolTable.Item[] table;
 393:                      table = compiler.praser.table.table;
 394:   
 395:                      System.out.println("debug infomation");
 396:                      for (int i = 1; table[i] != null; i++) {
 397:                          System.out.println("Vector info" + i);
 398:                          Vector row = new Vector();
 399:                          row.addElement(table[i].name);
 400:                          row.addElement(table[i].type);
 401:                          row.addElement(table[i].value);
 402:                          row.addElement(table[i].lev);
 403:                          row.addElement(table[i].addr);
 404:                          row.addElement(table[i].size);
 405:                          tablemodel.addRow(row);
 406:                      }
 407:   
 408:                  }
 409:              } catch (Exception ex) {
 410:                  ex.printStackTrace();
 411:                  System.out.println("***Symbol Table meet with error while reading***");
 412:              }
 413:              System.out.println("out of try catch ");
 414:              br = new BufferedReader(new FileReader(PL0.tableFile));
 415:              jTextArea4.read(br, "");
 416:              System.out.println("jTextArea4 set content ");
 417:              br.close();
 418:              jTable1.setModel(tablemodel);
 419:              jTable1.updateUI();
 420:          } catch (Exception ex) {
 421:              Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
 422:          }
 423:   
 424:   
 425:      }//GEN-LAST:event_jButton4ActionPerformed
 426:   
 427:      private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
 428:          try {
 429:              BufferedReader br = new BufferedReader(new FileReader(PL0.pcodeFile));
 430:              jTextArea2.read(br, "GBK");
 431:              br.close();
 432:          } catch (Exception ex) {
 433:              ex.printStackTrace();
 434:              System.out.println("***pcode reading meet with error***");
 435:          }
 436:   
 437:      }//GEN-LAST:event_jButton5ActionPerformed
 438:   
 439:      private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
 440:          // TODO add your handling code here:
 441:          jDialog1.setVisible(false);
 442:          jDialog1.dispose();
 443:      }//GEN-LAST:event_jButton6ActionPerformed
 444:   
 445:      private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
 446:          try {
 447:              BufferedReader br = new BufferedReader(new FileReader(PL0.errFile));
 448:              jTextArea5.read(br, "");
 449:              br.close();
 450:          } catch (Exception ex) {
 451:              ex.printStackTrace();
 452:              System.out.println("***can't not print error intformation***");
 453:          }
 454:   
 455:          jDialog3.setVisible(true);
 456:          jDialog3.setTitle("编译错误信息");
 457:          jDialog3.setSize(509, 422);
 458:          jDialog3.setLocationRelativeTo(null);
 459:          jDialog3.setResizable(false);
 460:   
 461:   
 462:      }//GEN-LAST:event_jButton7ActionPerformed
 463:   
 464:      private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed
 465:          // TODO add your handling code here:
 466:          jTextArea5.setText(null);
 467:          jDialog3.setVisible(false);
 468:          jDialog3.dispose();
 469:      }//GEN-LAST:event_jButton9ActionPerformed
 470:   
 471:      private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
 472:          // TODO add your handling code here:
 473:          runtimeFrame.setVisible(false);
 474:          runtimeFrame.dispose();
 475:      }//GEN-LAST:event_jButton10ActionPerformed
 476:   
 477:      private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
 478:          Interpreter interp = new Interpreter();
 479:          interp.pcodeArray = compiler.praser.interp.pcodeArray.clone();
 480:          System.out.println("I'm trying to debug pcodeArray");
 481:          Pcode item = interp.pcodeArray[0];
 482:          for (int i = 0; item != null;) {
 483:              System.out.println(i + " " + Pcode.pcode[item.f] + "  " + item.l + "  " + item.a);
 484:              item = interp.pcodeArray[++i];
 485:          }
 486:          try {
 487:              BufferedWriter indata = new BufferedWriter(new FileWriter(PL0.inputFile));
 488:              String str = jTextArea3.getText();
 489:              String[] lines = str.split("\n");
 490:              for (String line : lines) {
 491:                  indata.write(line + "\r\n");
 492:              }
 493:              indata.flush();
 494:              indata.close();
 495:          } catch (IOException ex) {
 496:              ex.printStackTrace();
 497:              System.out.println("***saving input data meet with error***");
 498:          }
 499:          System.out.println("***saving input data succeed***");
 500:          try {
 501:   
 502:              BufferedReader br = new BufferedReader(new FileReader(PL0.inputFile));
 503:              BufferedWriter bw = new BufferedWriter(new FileWriter(PL0.runtimeFile));
 504:              interp.interpret(br, bw);
 505:              br.close();
 506:              bw.close();
 507:   
 508:          } catch (Exception ex) {
 509:              ex.printStackTrace();
 510:              System.out.println("***interpret meet with error***");
 511:          }
 512:          try{
 513:          BufferedReader ansRead = new BufferedReader(new FileReader(PL0.runtimeFile));
 514:          jTextArea6.read(ansRead, " ");
 515:          ansRead.close();
 516:          }catch(Exception e){
 517:              e.printStackTrace();
 518:              System.out.println("***read answer failed***");
 519:          }
 520:      }//GEN-LAST:event_jButton8ActionPerformed
 521:   
 522:      /**
 523:       * @param args the command line arguments
 524:       */
 525:      public static void main(String args[]) {
 526:          /* Set the Nimbus look and feel */
 527:          //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
 528:          /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
 529:           * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
 530:           */
 531:          try {
 532:              for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
 533:                  if ("Nimbus".equals(info.getName())) {
 534:                      javax.swing.UIManager.setLookAndFeel(info.getClassName());
 535:                      break;
 536:                  }
 537:              }
 538:          } catch (ClassNotFoundException ex) {
 539:              java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
 540:          } catch (InstantiationException ex) {
 541:              java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
 542:          } catch (IllegalAccessException ex) {
 543:              java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
 544:          } catch (javax.swing.UnsupportedLookAndFeelException ex) {
 545:              java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
 546:          }
 547:          //</editor-fold>
 548:   
 549:          /* Create and display the form */
 550:          java.awt.EventQueue.invokeLater(new Runnable() {
 551:              public void run() {
 552:                  JFrame mainFrame = new MainFrame();
 553:                  mainFrame.setVisible(true);
 554:                  mainFrame.setLocationRelativeTo(null);
 555:              }
 556:          });
 557:      }
 558:   
 559:      Interpreter interp;
 560:      private File selected = null;
 561:      private PL0 compiler;
 562:      private final static String[] symboltableHead = {"name", "type", "value", "level", "address", "size"};
 563:      // public ResultSet resultset;
 564:      private DefaultTableModel tablemodel;
 565:      private ImageIcon image = new ImageIcon(this.getClass().getResource("/image/Pandora alt.png"));
 566:      // Variables declaration - do not modify//GEN-BEGIN:variables
 567:      private javax.swing.JButton jButton1;
 568:      private javax.swing.JButton jButton10;
 569:      private javax.swing.JButton jButton2;
 570:      private javax.swing.JButton jButton3;
 571:      private javax.swing.JButton jButton4;
 572:      private javax.swing.JButton jButton5;
 573:      private javax.swing.JButton jButton6;
 574:      private javax.swing.JButton jButton7;
 575:      private javax.swing.JButton jButton8;
 576:      private javax.swing.JButton jButton9;
 577:      private javax.swing.JDialog jDialog1;
 578:      private javax.swing.JDialog jDialog3;
 579:      private javax.swing.JLabel jLabel1;
 580:      private javax.swing.JLabel jLabel10;
 581:      private javax.swing.JLabel jLabel11;
 582:      private javax.swing.JLabel jLabel12;
 583:      private javax.swing.JLabel jLabel2;
 584:      private javax.swing.JLabel jLabel3;
 585:      private javax.swing.JLabel jLabel4;
 586:      private javax.swing.JLabel jLabel5;
 587:      private javax.swing.JLabel jLabel6;
 588:      private javax.swing.JLabel jLabel7;
 589:      private javax.swing.JLabel jLabel8;
 590:      private javax.swing.JLabel jLabel9;
 591:      private javax.swing.JLayeredPane jLayeredPane1;
 592:      private javax.swing.JLayeredPane jLayeredPane2;
 593:      private javax.swing.JLayeredPane jLayeredPane3;
 594:      private javax.swing.JMenu jMenu1;
 595:      private javax.swing.JMenu jMenu2;
 596:      private javax.swing.JMenu jMenu3;
 597:      private javax.swing.JMenu jMenu4;
 598:      private javax.swing.JMenuBar jMenuBar1;
 599:      private javax.swing.JMenuItem jMenuItem1;
 600:      private javax.swing.JMenuItem jMenuItem2;
 601:      private javax.swing.JMenuItem jMenuItem3;
 602:      private javax.swing.JMenuItem jMenuItem4;
 603:      private javax.swing.JMenuItem jMenuItem5;
 604:      private javax.swing.JMenuItem jMenuItem6;
 605:      private javax.swing.JMenuItem jMenuItem7;
 606:      private javax.swing.JPanel jPanel1;
 607:      private javax.swing.JPanel jPanel10;
 608:      private javax.swing.JPanel jPanel11;
 609:      private javax.swing.JPanel jPanel2;
 610:      private javax.swing.JPanel jPanel3;
 611:      private javax.swing.JPanel jPanel4;
 612:      private javax.swing.JPanel jPanel5;
 613:      private javax.swing.JPanel jPanel6;
 614:      private javax.swing.JPanel jPanel7;
 615:      private javax.swing.JPanel jPanel8;
 616:      private javax.swing.JPanel jPanel9;
 617:      private javax.swing.JScrollPane jScrollPane1;
 618:      private javax.swing.JScrollPane jScrollPane2;
 619:      private javax.swing.JScrollPane jScrollPane3;
 620:      private javax.swing.JScrollPane jScrollPane4;
   1:      private javax.swing.JScrollPane jScrollPane5;
   2:      private javax.swing.JScrollPane jScrollPane7;
   3:      private javax.swing.JScrollPane jScrollPane8;
   4:      private javax.swing.JPopupMenu.Separator jSeparator1;
   5:      private javax.swing.JPopupMenu.Separator jSeparator2;
   6:      private javax.swing.JTable jTable1;
   7:      private javax.swing.JTextArea jTextArea1;
   8:      private javax.swing.JTextArea jTextArea2;
   9:      private javax.swing.JTextArea jTextArea3;
  10:      private javax.swing.JTextArea jTextArea4;
  11:      private javax.swing.JTextArea jTextArea5;
  12:      private javax.swing.JTextArea jTextArea6;
  13:      private javax.swing.JTextField jTextField1;
  14:      private javax.swing.JFrame runtimeFrame;
  15:      // End of variables declaration//GEN-END:variables
  16:  }
posted @ 2014-02-22 16:08  姜楠  阅读(1105)  评论(0编辑  收藏  举报