示例#1
0
文件: compiler.go 项目: Centny/igtest
//precompile will load all script and execute the INC cmd.
func (c *Compiler) PreCompile(sbys []byte) error {
	c.Lines = []string{}
	// sbys = b_reg_cmt.ReplaceAll(sbys, []byte(""))
	// sbys = l_reg_cmt.ReplaceAll(sbys, []byte("\n"))
	// sbys = Escape(sbys)
	var iscmt bool = false
	R := bufio.NewReader(bytes.NewReader(sbys))
	for i := 1; true; i++ {
		bys, err := util.ReadLine(R, 1024000, false)
		if err != nil {
			break
		}
		if b_reg_cmt_beg.Match(bys) {
			iscmt = true
		}
		if iscmt && b_reg_cmt_end.Match(bys) {
			iscmt = false
			continue
		}
		if iscmt {
			continue
		}
		bys = l_reg_cmt.ReplaceAll(bys, []byte(""))
		line := string(Escape(bys))
		line = strings.Trim(line, "\t \n")
		if len(line) < 1 {
			continue
		}
		// if c_reg_INC.MatchString(line) {
		// 	args := empty.Split(line, -1)
		// 	if len(args) < 2 {
		// 		return errors.New(fmt.Sprintf(
		// 			"INC(%v) error:%v", line, "argument is empty"))
		// 	}
		// 	tpath := ""
		// 	if filepath.IsAbs(args[1]) {
		// 		tpath = args[1]
		// 	} else {
		// 		tpath = filepath.Join(c.Cwd, args[1])
		// 	}
		// 	err := c.load(tpath)
		// 	if err != nil {
		// 		return errors.New(fmt.Sprintf("INC(%v) load error:%v", line, err.Error()))
		// 	}
		// 	continue
		// }
		c.addl(line, i)
	}
	return nil
}
示例#2
0
文件: mrepo.go 项目: Centny/Cny4go
//append file
func AppendF(fname string) {
	log.D("append file:%s", fname)
	f, err := os.Open(fname)
	if err != nil {
		log.W("open file(%v) error:%s", fname, err.Error())
		return
	}
	defer f.Close()
	buf := bufio.NewReader(f)
	for {
		l, err := util.ReadLine(buf, 102400, false)
		if err == io.EOF {
			break
		} else if err != nil {
			log.W("read file(%s) error:%s", fname, err.Error())
		} else {
			AppendR(string(l))
		}
	}
}