#ast #tezos #blockchain #smart-contracts #michelson

michelson-ast

米其尔松智能合约语言的抽象语法树(AST)

3 个版本

0.1.2 2023年5月25日
0.1.1 2023年3月21日
0.1.0 2023年3月19日

#15 in #tezos

MIT 协议

40KB
878

michelson-ast

概述

michelson-ast 是一个用于生成米其尔松代码的 Rust 库。此库可以处理 Tezos 智能合约语言的抽象语法树(AST)。

用法

要使用此库生成米其尔松代码,你可以编写如下程序

use michelson_ast::{
    instruction::Instruction,
    program::Program, ty::Ty,
    wrapped_instruction::WrappedInstruction,
};

fn main() {
    let program = Program {
        storage: Ty::Unit,
        parameter: Ty::Unit,
        code: vec![
            WrappedInstruction {
                comment: Some("=> Unit".to_owned()),
                instruction: Instruction::Cdr,
            },
            WrappedInstruction {
                comment: Some("=> {} : Unit".to_owned()),
                instruction: Instruction::Nil { ty: Ty::Operation },
            },
            WrappedInstruction {
                comment: Some("=> (Pair {} Unit)".to_owned()),
                instruction: Instruction::Pair,
            },
        ],
    };

    println!("{}", program.to_string());
}

示例输出

parameter unit;
storage unit;
code {
       CDR; # => Unit
       NIL operation; # => {} : Unit
       PAIR; # => (Pair {} Unit)
     }

无运行时依赖