Exemplo n.º 1
0
func NewParseBigIdent() *ParseBigIdent {
	f := &ParseBigIdent{}
	f.parseRegex = gparselib.NewParseRegexp(parseData, setParseData, "[A-Z][a-zA-Z0-9]+")

	f.InPort = f.parseRegex.InPort
	f.SetOutPort = f.parseRegex.SetOutPort

	return f
}
Exemplo n.º 2
0
func NewParseArrow() *ParseArrow {
	f := &ParseArrow{}
	f.arrow = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticArrow()
	f.spcCom1 = NewParseSpaceComment()
	f.optType = gparselib.NewParseOptional(parseData, setParseData)
	f.optCall = gparselib.NewParseOptional(parseData, setParseData)
	f.litArr = gparselib.NewParseLiteral(parseData, setParseData, "->")
	f.spcCom2 = NewParseSpaceComment()
	f.typ = gparselib.NewParseAll(parseData, setParseData)
	f.call = gparselib.NewParseRegexp(parseData, setParseData, "[saip]")
	f.openType = gparselib.NewParseLiteral(parseData, setParseData, "[")
	f.spc1 = NewParseOptSpc()
	f.typeName = NewParseBigIdent()
	f.spc2 = NewParseOptSpc()
	f.closeType = gparselib.NewParseLiteral(parseData, setParseData, "]")

	f.arrow.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.arrow.SemInPort)
	f.arrow.AppendSubOutPort(f.spcCom1.InPort)
	f.spcCom1.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.optType.InPort)
	f.optType.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.optCall.InPort)
	f.optCall.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.litArr.InPort)
	f.litArr.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.spcCom2.InPort)
	f.spcCom2.SetOutPort(f.arrow.SubInPort)
	f.optType.SetSubOutPort(f.typ.InPort)
	f.typ.SetOutPort(f.optType.SubInPort)
	f.optCall.SetSubOutPort(f.call.InPort)
	f.call.SetOutPort(f.optCall.SubInPort)
	f.typ.AppendSubOutPort(f.openType.InPort)
	f.openType.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.spc1.InPort)
	f.spc1.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.typeName.InPort)
	f.typeName.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.spc2.InPort)
	f.spc2.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.closeType.InPort)
	f.closeType.SetOutPort(f.typ.SubInPort)

	f.InPort = f.arrow.InPort
	f.SetOutPort = f.arrow.SetOutPort

	return f
}