回 帖 发 新 帖 刷新版面

主题:[原创]最简单的编程语言【MYS语言】精彩例文


[b]MYS是MYL的脚本形式[/b]

[b]本人现在以编写Myl为主[/b]

【Myl语言】同样非常简单
【Myl语言】是编译执行的
【Myl语言】还可以使用中文编程
【Myl语言】现阶段只能使用微软的 .Net 库
【Myl语言】下载地址:[url=http://dubixia.51.net/myl/]http://dubixia.51.net/myl/[/url]

[b]此贴将陆续上传【Myl语言】的一些精彩例文。[/b]


回复列表 (共1个回复)

沙发

//这是一个简单的Myl文件编辑器


使用 [标准界面引用.中文.Myl]
使用 System.Diagnostics

字符串 文件名,  启动后的文件
字符串 对话框过滤器=[*.myl|*.Myl|*.*|*.*]
字符串 新文件名=[新文件]
字符串 扩展名=[.中文.Myl]
文本框 代码框
窗口 我的窗口
设置 我的设置
是否 置换中文标点为英文

方法 设置文件名(字符串 s){
    文件名=s
    我的窗口.标题文本=[[路径.获取文件名(s)]--简单的Myl编辑器]
}
方法 装载(){
    流读入者(文件名,编码器.默认值){
        代码框.标题文本=读到结尾();
        代码框.修改过=否        
    }    //自动关闭流
    如果(异常){说[异常参数的信息为:[异常参数.消息]] }
    
}
方法 保存(){
    流写入者(文件名,否,编码器.默认值){
        写(代码框.标题文本);
        代码框.修改过=否
    }    //自动关闭流
    如果(异常){说[异常参数的信息为:[异常参数.消息]] }
}
是否 另存(){
    保存文件对话框(){
        文件名=.文件名
        过滤器=对话框过滤器
        如果(显示对话框()=确定){
            设置文件名(文件名)
            保存()
            返回 成功
        }
    }
    返回 失败
}
是否 保存文件(){
    如果(代码框.修改过=否)返回 成功;
    否则{ 保存(); 返回 成功}
}
是否 关闭文件(){
    如果(代码框.修改过=否)返回 成功;
    结果=消息框.显示[保存已修改的文件吗?][文件已修改](MessageBoxButtons.YesNoCancel);
    如果(结果=取消)返回 失败
    再如果(结果=是){保存(); 返回 成功}
    否则 返回 成功
}
是否 打开文件(){
    如果(不 关闭文件())返回 失败
    打开文件对话框(){
        文件名=.文件名
        过滤器=对话框过滤器
        如果(显示对话框()=确定){
            设置文件名(文件名)
            装载()
            返回 成功
        }
    }
    返回 失败
}

字符串 获取新文件名(){
    i=1
    新文件名1=[[新文件名][i][扩展名]]
    循环(文件.存在(新文件名1)){
        i++;  新文件名1=[[新文件名][i][扩展名]]
    }
    返回 新文件名1    
}


是否 创建新文件(){
    如果(不 关闭文件())返回 失败
    设置文件名(获取新文件名())
    代码框.标题文本=[
        //中文Myl编程语言
        
        使用 [`标准界面引用.中文.Myl]`
        
        说[`你好!]`
                
    ]
    代码框.修改过=是
    返回 成功
}

方法 自动加tab(){
    代码框{
        s=标题文本
        如果( 选择的起点-2<0)返回
        如果( s.(选择的起点-2)!='Return')返回
        
        id=获取某行首字符的位置 (获取某位置所在的行(选择的起点)-1)
        tabs=[]
        c=s.(选择的起点-3)
        如果(c)='{' ,'[','(' { tabs=[['Tab']] }
        循环{    
            如果(s.(id)='Tab'){
                tabs=[[tabs]['Tab']]
                id++                
            }
            否则 跳出
        }
        Paste(tabs)
    }
    
    
}


我的字典=字典<字符,字符>(){
    加入('【','[')
    加入('】',']')
    加入('(','(')
    加入(')',')')
    加入('《','<')
    加入('》','>')
    加入(':',':')
    加入(';',';')
    加入(',',',')
    加入('。','.')
    加入('、','/')
    加入('?','?')
    加入('’',''')
    加入('‘',''')
    加入('“','"')
    加入('”','"')
    
}



方法 置换(键按着事件参数 事件参数){
    事件参数.KeyChar=我的字典.(事件参数.KeyChar)        
    
    如果(异常){返回}
}


我的窗口=
窗口[简单的Myl编辑器]{

    当窗口准备关闭时{{
        如果(不 关闭文件()){事件参数.取消=是}
    }}

    代码框=
    文本框(){        
    
        停靠=填满
        多行=有效
        接受Tab=有效
        自动换行=无效
        滚动条风格=二者

        当键放开时{{ 
            如果(事件参数.KeyCode=Keys.Enter)自动加tab() 
        }}        
        
        当键按着时{{如果(置换中文标点为英文)  置换(事件参数) }}        

    }
}


我的设置=
设置[Myl编辑器设置]{

    条目[颜色]{
        选择(@代码框.背景颜色){
            条目[红色](颜色.Red)
            条目[绿色](颜色.Green)
            条目[蓝色](颜色.Blue)
            条目[黑色](颜色.Black)
            条目[自选]{
                编辑[自选颜色](@值)
            }
        }

        编辑(@代码框.前景颜色)

    }

    条目[字体]{
        编辑(@代码框.字体)
    }

    条目[其他]{
        选择(@启动后的文件){
            [创建新文件]
            [打开最后文件]
        }  
        
        是否(@置换中文标点为英文)
        
    }
    
}


代码框{

    设置菜单[Myl编辑器菜单]{
        主设置=我的设置
        
        执行[运行]{{如果(保存文件()=成功) 进程.开始(文件名) }} { ShortcutKeys=F5 }
        
        条目[文件]{
            执行[新建]{{创建新文件()}}
            执行[打开]{{打开文件() }}
            执行[保存]{{保存文件() }} { ShortcutKeys=Control | S }

            执行[另存]{{另存() }}
        }
        条目[编辑]{
            执行[剪切]{{代码框.Cut()}}
            执行[复制]{{代码框.Copy()}}
            执行[粘贴]{{代码框.Paste()}}
            执行[删除]{{代码框.SelectedText=[];代码框.修改过=是}}
            分隔条()
            执行[全选]{{代码框.SelectAll()}} { ShortcutKeys=Control | A }
        }
        条目[选项]{
            条目[启动后的要编辑的文件]{
                选择(@启动后的文件){
                    [创建新文件]
                    [打开最后文件]
                }                
            }
            编辑(@代码框.字体)
            是否(@置换中文标点为英文){ ShortcutKeys=F12 }
            执行[设置]{{我的设置.显示()}}            
        }
        条目[帮助]{
            执行[目录]{{说[暂时没有帮助目录]}}
            执行[搜索]{{说[暂时没有帮助搜索]}}
        }
    }

}




状态保存[Myl编辑器状态]{
    @我的窗口.左边
    @我的窗口.顶边
    @我的窗口.宽度
    @我的窗口.高度
    @我的窗口.窗口状态
    @文件名
}




如果(启动后的文件=[创建新文件]){
    创建新文件()
}
否则{
    设置文件名(文件名)
    装载()
}


应用程序.运行(我的窗口)


//如果(异常){ 说(异常参数.消息) }


我来回复

您尚未登录,请登录后再回复。点此登录或注册