北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

耗时一周,我的编程语言 Hulo 新增 Bash 转译和包管理工具


Hulo 编程语言重磅更新:VBScript + Bash 同时支持!REPL、包管理器也来了!

嘿,脚本开发者们!

还记得我上周介绍的那个可以编译成 VBScript 的现代编程语言 Hulo吗?
这周它又迎来了一波超猛更新,尤其是这个:


Bash 转译器正式上线!

是的,你没看错!

Hulo 现在不仅能生成 Windows 下的 VBScript 脚本,还支持转译成 Bash 脚本,一套代码,同时跑在 Linux/macOSWindows 上!

看看这段 Hulo 代码:

// main.hl
class User {
    pub name: str
    pub age: num

    pub fn to_str() -> str {
        return "User(name: $name, age: $age)"
    }

    pub fn greet(other: str) {
        MsgBox "Hello, $other! I'm $name."
    }
}

let u = User("John", 20)
MsgBox $u.to_str();
$u.greet("Jane");

然后你只需要执行:

hulo main.hl

即可同时生成:

Bash 版本:

#!/bin/bash
function create_user() {
  local name=$1
  local age=$2
  declare -A user
  user["name"]=$name
  user["age"]=$age
  echo "$(declare -p user)"
}
function user_to_str() {
  eval "declare -A user=${1}"
  echo "User(name: $name, age: $age)"
}
function user_greet() {
  eval "declare -A user=${1}"
  local other=$2
  MsgBox "Hello, $other! I'm $name."
}

u=$(create_user "John" 20)
MsgBox $(user_to_str $u)
user_greet $u "Jane"

VBScript 版本:

Class User
  Public name
  Public age
  Public Function to_str()
    to_str = "User(name: " & name & ", age: " & age & ")"
  End Function
  Public Function greet(other)
    MsgBox("Hello, " & other & "! I'm " & name & ".")
  End Function
End Class
Set u = New User
u.name = "John"
u.age = 20
MsgBox(u.to_str())
u.greet("Jane")

BUT!问题也来了——
Bash 里没有 MsgBox!

所以转译后的 Bash 脚本执行时会出错!你需要手动将 MsgBox 改成 echo,是不是有点破坏跨平台的梦想?

别急!这个问题 Hulo 早就注意到了,团队正在开发一种称为:

命令体操(Command Gymnastics)

use MsgBox = If<$platform == "vbs", MsgBox, If<$platform == "powershell", Write-Host, echo>>

类似 TypeScript 的类型体操,它将支持条件命令、平台重定向等强大功能!
未来你写的 MsgBox 会自动变成 echo / Write-Host / MsgBox!

敬请期待!


HLPM 包管理工具上线!

Hulo 的包管理工具 hlpm 也来了!

虽然模块 import 机制还在开发中,但你已经可以:

hlpm init my-project 

hlpm run main.hl

自动创建 huloc.yaml 和 hulo.pkg.yaml
项目结构更规范了,有点像 JavaScript 中的 package.json + tsconfig.json。


交互式开发环境 Hulo-REPL 上线!

想快速试代码?命令补全?现在支持:

hulo-repl
  • 支持命令补全
  • 支持主题切换
  • 即将支持实时语法分析、实时转译!

技术更新一览

  • 重构 VBScript 转译器,结构更清晰
  • 修复字符串转译 Bug
  • 配置系统升级,支持读取 huloc.yaml

注意:这是一次破坏性更新,v0.1.0 写的部分代码可能无法在 v0.2.0 跑通!


下一步计划抢先看

  1. 支持 Windows 下的 Batch 脚本转译
  2. 上线包发布系统,复用更方便
  3. 第三方库导入系统
  4. 命令体操系统上线!更智能跨平台!

项目地址

GitHub 项目传送门,搜索 hulo-lang/hulo

如果你觉得 Hulo 有趣,欢迎 Star + Issue 支持一下!
或者留言说说你觉得这种“一次编写,多平台运行”的方式有没有前途?


欢迎转发、关注、交流~
让我们一起把脚本开发做得更优雅、更现代!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言