예제 #1
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
}
예제 #2
0
func NewParsePort() *ParsePort {
	f := &ParsePort{}
	f.port = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticPort()
	f.portName = NewParseSmallIdent()
	f.optPortNum = gparselib.NewParseOptional(parseData, setParseData)
	f.portNum = gparselib.NewParseAll(parseData, setParseData)
	f.dot = gparselib.NewParseLiteral(parseData, setParseData, ".")
	f.num = gparselib.NewParseNatural(parseData, setParseData, 10)

	f.port.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.port.SemInPort)
	f.port.AppendSubOutPort(f.portName.InPort)
	f.portName.SetOutPort(f.port.SubInPort)
	f.port.AppendSubOutPort(f.optPortNum.InPort)
	f.optPortNum.SetOutPort(f.port.SubInPort)
	f.optPortNum.SetSubOutPort(f.portNum.InPort)
	f.portNum.SetOutPort(f.optPortNum.SubInPort)
	f.portNum.AppendSubOutPort(f.dot.InPort)
	f.dot.SetOutPort(f.portNum.SubInPort)
	f.portNum.AppendSubOutPort(f.num.InPort)
	f.num.SetOutPort(f.portNum.SubInPort)

	f.InPort = f.port.InPort
	f.SetOutPort = f.port.SetOutPort

	return f
}
예제 #3
0
func NewParseOptPort() *ParseOptPort {
	f := &ParseOptPort{}
	f.optPort = gparselib.NewParseOptional(parseData, setParseData)
	f.pport = NewParsePort()

	f.optPort.SetSubOutPort(f.pport.InPort)
	f.pport.SetOutPort(f.optPort.SubInPort)

	f.InPort = f.optPort.InPort
	f.SetOutPort = f.optPort.SetOutPort

	return f
}
예제 #4
0
func NewParseOptSpc() *ParseOptSpc {
	f := &ParseOptSpc{}
	f.optSpc = gparselib.NewParseOptional(parseData, setParseData)
	f.semantic = NewTextSemantic()
	f.parseSpace = gparselib.NewParseSpace(parseData, setParseData, false)

	f.optSpc.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.optSpc.SemInPort)
	f.optSpc.SetSubOutPort(f.parseSpace.InPort)
	f.parseSpace.SetOutPort(f.optSpc.SubInPort)

	f.InPort = f.optSpc.InPort
	f.SetOutPort = f.optSpc.SetOutPort

	return f
}
예제 #5
0
func NewParseOperationNameParens() *ParseOperationNameParens {

	f := &ParseOperationNameParens{}
	f.opNameParens = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticOperationNameParens()
	f.optOpName = gparselib.NewParseOptional(parseData, setParseData)
	f.openType = gparselib.NewParseLiteral(parseData, setParseData, "(")
	f.spc1 = NewParseOptSpc()
	f.optOpType = NewParseOptOperationType()
	f.closeType = gparselib.NewParseLiteral(parseData, setParseData, ")")
	f.spc2 = NewParseOptSpc()
	f.opName = gparselib.NewParseAll(parseData, setParseData)
	f.smallIdent = NewParseSmallIdent()
	f.spc3 = NewParseOptSpc()

	f.opNameParens.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.opNameParens.SemInPort)
	f.opNameParens.AppendSubOutPort(f.optOpName.InPort)
	f.optOpName.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.openType.InPort)
	f.openType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.spc1.InPort)
	f.spc1.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.optOpType.InPort)
	f.optOpType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.closeType.InPort)
	f.closeType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.spc2.InPort)
	f.spc2.SetOutPort(f.opNameParens.SubInPort)
	f.optOpName.SetSubOutPort(f.opName.InPort)
	f.opName.SetOutPort(f.optOpName.SubInPort)
	f.opName.AppendSubOutPort(f.smallIdent.InPort)
	f.smallIdent.SetOutPort(f.opName.SubInPort)
	f.opName.AppendSubOutPort(f.spc3.InPort)
	f.spc3.SetOutPort(f.opName.SubInPort)

	f.InPort = f.opNameParens.InPort
	f.SetOutPort = f.opNameParens.SetOutPort

	return f
}
예제 #6
0
func NewParseOptPortSpc() *ParseOptPortSpc {
	f := &ParseOptPortSpc{}
	f.optPortSpc = gparselib.NewParseOptional(parseData, setParseData)
	f.portSpc = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticOptPortSpc()
	f.pport = NewParsePort()
	f.space = gparselib.NewParseSpace(parseData, setParseData, false)

	f.optPortSpc.SetSubOutPort(f.portSpc.InPort)
	f.portSpc.SetOutPort(f.optPortSpc.SubInPort)
	f.portSpc.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.portSpc.SemInPort)
	f.portSpc.AppendSubOutPort(f.pport.InPort)
	f.pport.SetOutPort(f.portSpc.SubInPort)
	f.portSpc.AppendSubOutPort(f.space.InPort)
	f.space.SetOutPort(f.portSpc.SubInPort)

	f.InPort = f.optPortSpc.InPort
	f.SetOutPort = f.optPortSpc.SetOutPort

	return f
}
예제 #7
0
func NewParseOptOperationType() *ParseOptOperationType {
	f := &ParseOptOperationType{}
	f.optOpType = gparselib.NewParseOptional(parseData, setParseData)
	f.opType = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticOptOperationType()
	f.parseBigIdent = NewParseBigIdent()
	f.parseOptSpc = NewParseOptSpc()

	f.optOpType.SetSubOutPort(f.opType.InPort)
	f.opType.SetOutPort(f.optOpType.SubInPort)
	f.opType.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.opType.SemInPort)
	f.opType.AppendSubOutPort(f.parseBigIdent.InPort)
	f.parseBigIdent.SetOutPort(f.opType.SubInPort)
	f.opType.AppendSubOutPort(f.parseOptSpc.InPort)
	f.parseOptSpc.SetOutPort(f.opType.SubInPort)

	f.InPort = f.optOpType.InPort
	f.SetOutPort = f.optOpType.SetOutPort

	return f
}