loader/string.go
func (l *StringByteCodeLoader) LoadString(name string, template string) (*vm.ByteCode, error) {
	ast, err := l.Parser.ParseString(name, template)
	if err != nil {
		return nil, err
	}

	if l.ShouldDumpAST() {
		fmt.Fprintf(os.Stderr, "AST:\n%s\n", ast)
	}

	bc, err := l.Compiler.Compile(ast)
	if err != nil {
		return nil, err
	}

	if l.ShouldDumpByteCode() {
		fmt.Fprintf(os.Stderr, "ByteCode:\n%s\n", bc)
	}

	return bc, nil
}
func (l *StringByteCodeLoader) LoadString(name string, template string) (*vm.ByteCode, error) {
	ast, err := l.Parser.ParseString(name, template)
	if err != nil {
		return nil, err
	}

	if l.ShouldDumpAST() {
		fmt.Fprintf(os.Stderr, "AST:\n%s\n", ast)
	}

	bc, err := l.Compiler.Compile(ast)
	if err != nil {
		return nil, err
	}

	if l.ShouldDumpByteCode() {
		fmt.Fprintf(os.Stderr, "ByteCode:\n%s\n", bc)
	}

	return bc, nil
}
// LoadString takes a template string and compiles it into vm.ByteCode