• GUIForDebug


    package gui;
    
    import org.luaj.vm2.Globals;
    import org.luaj.vm2.LuaValue;
    import org.luaj.vm2.ast.Chunk;
    import org.luaj.vm2.ast.Exp;
    import org.luaj.vm2.ast.Stat;
    import org.luaj.vm2.ast.Visitor;
    import org.luaj.vm2.lib.jse.JsePlatform;
    import org.luaj.vm2.parser.LuaParser;
    import org.luaj.vm2.parser.ParseException;
    
    import javax.swing.*;
    import javax.swing.filechooser.FileFilter;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    
    /**
     * Created by 10159705 on 16-3-7.
     */
    public class GUIForDebug {
    
        public static final int WIDTH = 400;
    
        public static void main(String[] args) {
            final JFrame jFrame = new JFrame("For Lua Debug");
            jFrame.setLayout(new FlowLayout());
    
            final JTextField jTextField = new JTextField("Lua Path:", WIDTH - 10);
            jFrame.add(jTextField);
            final JFileChooser jFileChooser = new JFileChooser();
            jFileChooser.setSelectedFile(new File("E:\lang\lua\workspace\LuaProject\src\main.lua"));
            jFileChooser.setFileFilter(new FileFilter() {
                @Override
                public String getDescription() {
                    return "Lua(.lua)";
                }
    
                @Override
                public boolean accept(File f) {
                    if (f.isDirectory()) {
                        return true;
                    }
                    return f.getName().toLowerCase().endsWith(".lua");
                }
            });
    
    
            JButton jButton = new JButton("click");
            jFrame.add(jButton);
            jButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    int result = jFileChooser.showOpenDialog(jFrame);
                    if (result == JFileChooser.CANCEL_OPTION) {
                        return;
                    }
                    File chooseFile = jFileChooser.getSelectedFile();
    
                    String luaFilePath = chooseFile.getAbsolutePath();
                    jFrame.add(new JLabel("<html><font color=blue>" + luaFilePath));
                    jTextField.setText(luaFilePath);
                    jFrame.validate();
                    // create an environment to run in
                    Globals globals = JsePlatform.standardGlobals();
    
                    // Use the convenience function on Globals to load a chunk.
                    LuaValue chunk = globals.loadfile(luaFilePath);
    
                    // Use any of the "call()" or "invoke()" functions directly on the chunk.
                    chunk.call(LuaValue.valueOf(luaFilePath));
                }
            });
    
            SwingConsole.run(jFrame, WIDTH, 200);
        }
    
        protected static void parserUT(File fileFullName) {
            try {
    
                // Create a LuaParser. This will fill in line and column number
                // information for most exceptions.
                LuaParser parser = new LuaParser(new FileInputStream(fileFullName));
    
                // Perform the parsing.
                Chunk chunk = parser.Chunk();
    
                // Print out line info for all function definitions.
                chunk.accept(new Visitor() {
                    public void visit(Exp.AnonFuncDef exp) {
                        System.out.println("Anonymous function definition at "
                                + exp.beginLine + "." + exp.beginColumn + ","
                                + exp.endLine + "." + exp.endColumn);
                    }
    
                    public void visit(Stat.FuncDef stat) {
                        System.out.println("Function definition '" + stat.name.name.name + "' at "
                                + stat.beginLine + "." + stat.beginColumn + ","
                                + stat.endLine + "." + stat.endColumn);
    
                        System.out.println("	Name location "
                                + stat.name.beginLine + "." + stat.name.beginColumn + ","
                                + stat.name.endLine + "." + stat.name.endColumn);
                    }
    
                    public void visit(Stat.LocalFuncDef stat) {
                        System.out.println("Local function definition '" + stat.name.name + "' at "
                                + stat.beginLine + "." + stat.beginColumn + ","
                                + stat.endLine + "." + stat.endColumn);
                    }
                });
    
            } catch (ParseException e) {
                System.out.println("parse failed: " + e.getMessage() + "
    "
                        + "Token Image: '" + e.currentToken.image + "'
    "
                        + "Location: " + e.currentToken.beginLine + ":" + e.currentToken.beginColumn
                        + "-" + e.currentToken.endLine + "," + e.currentToken.endColumn);
    
            } catch (IOException e) {
                System.out.println("IOException occurred: " + e);
                e.printStackTrace();
            }
        }
    
    }
    
    
    class SwingConsole {
    
        public static void run(final JFrame frame, final int width, final int height) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    frame.setSize(width, height);
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setLocationRelativeTo(null);
                    frame.setVisible(true);
                }
            });
        }
    }
    
    --array={1,2,3,4,5}
    --for key, var in pairs(array) do
    --  print(key,var)
    --end
    
    --
    --function f(a, b)
    --return a or b
    --end
    --
    --print ("output:",f(1,3));
    
    require('mobdebug')
    function maximum (a)
      local mi = 1             -- maximum index
      local m = a[mi]          -- maximum value
      for i,val in ipairs(a) do
        if val > m then
          mi = i
          m = val
        end
      end
      return m, mi
    end
    
    print(maximum({8,10,23,12,5}))     --> 23   3
    

      

      

  • 相关阅读:
    01 数据库概述以及MySQL的环境搭建
    02.SQL语言的规则和规范
    4. 运算符的使用
    5. 排序与分页
    6. 多表查询
    8. 聚合函数
    7. 单行函数
    第四单元总结性博客作业
    php中try、catch、finally 用法总结
    接收Request请求Bearer令牌参数
  • 原文地址:https://www.cnblogs.com/softidea/p/5251857.html
Copyright © 2020-2023  润新知