solang-parser 0.2.1

Solang Solidity Parser
Documentation
object "A" {
    code {
        function main() {
            // TODO: support this
            // i64.drop(dataoffset("A"))
            // i64.drop(datasize("A"))
            i64.drop(dataoffset("B"))
            i64.drop(datasize("B"))
            // TODO: support sub-subobjects
            // i64.drop(dataoffset("B.C"))
            // i64.drop(datasize("B.C"))
            // i64.drop(dataoffset("B.E"))
            // i64.drop(datasize("B.E"))
            // i64.drop(dataoffset("B.C.D"))
            // i64.drop(datasize("B.C.D"))
        }
    }

    data "data1" "Hello, World!"

    object "B" {
        code {
            function main() {
                i64.drop(dataoffset("C"))
                i64.drop(datasize("C"))
                i64.drop(dataoffset("E"))
                i64.drop(datasize("E"))
                // i64.drop(dataoffset("C.D"))
                // i64.drop(datasize("C.D"))
            }
        }
        object "C" {
            code {
                function main() {
                    i64.drop(dataoffset("D"))
                    i64.drop(datasize("D"))
                }
            }
            object "D" {
                code {
                    function main() {
                        unreachable()
                    }
                }
            }
        }
        object "E" {
            code {
                function main() {
                    unreachable()
                }
            }
        }
    }
}
// ====
// wasm: true
// ----
// Text:
// (module
//     ;; custom section for sub-module
//     ;; The Keccak-256 hash of the text representation of "B": ccfc48ce1c0d0542ffd25ae6858777b2f7b8a6d2b6608f679458182e719f5434
//     ;; (@custom "B" "0061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e0000007f01430061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e0000003c01440061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e00000a080106000240000b0b0a0d010b00024042341a423a1a0b0b003c01450061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e00000a080106000240000b0b0a15011300024042341a42fd001a42b5011a423a1a0b0b")
//     ;; custom section for data
//     ;; (@custom "data1" "48656c6c6f2c20576f726c6421")
//     (memory $memory (export "memory") 1)
//     (export "main" (func $main))
//
// (func $main
//     (block $label_
//         (drop (dataoffset "B"))
//         (drop (datasize "B"))
//     )
// )
//
// )
//
// Binary:
// 0061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e000000880201420061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e0000007f01430061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e0000003c01440061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e00000a080106000240000b0b0a0d010b00024042341a423a1a0b0b003c01450061736d01000000010401600000020100030201000503010001060100071102066d656d6f72790200046d61696e00000a080106000240000b0b0a15011300024042341a42fd001a42b5011a423a1a0b0b001305646174613148656c6c6f2c20576f726c64210a0e010c00024042351a4286021a0b0b