mirror of
https://github.com/fluencelabs/aqua.git
synced 2025-04-24 14:32:13 +00:00
Fix for greedy XOR tags (#412)
This commit is contained in:
parent
740a9ba653
commit
d5d7b8b5fd
20
aqua-src/test.aqua
Normal file
20
aqua-src/test.aqua
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import "@fluencelabs/aqua-ipfs/ipfs.aqua"
|
||||||
|
|
||||||
|
service Console("run-console"):
|
||||||
|
print(res: IpfsGetResult)
|
||||||
|
|
||||||
|
service ConsoleOp("run-console"):
|
||||||
|
print(arr: []string)
|
||||||
|
|
||||||
|
|
||||||
|
func something(node: string) -> string:
|
||||||
|
service_id: *string
|
||||||
|
on HOST_PEER_ID:
|
||||||
|
res <- Ipfs.get("1234")
|
||||||
|
if res.error == "":
|
||||||
|
service_id <<- "0x"
|
||||||
|
else:
|
||||||
|
service_id <<- "1x"
|
||||||
|
ConsoleOp.print(service_id)
|
||||||
|
Console.print(res)
|
||||||
|
<- service_id!
|
@ -129,11 +129,10 @@ object TagInliner extends Logging {
|
|||||||
case RestrictionTag(name, isStream) =>
|
case RestrictionTag(name, isStream) =>
|
||||||
pure(RestrictionModel(name, isStream))
|
pure(RestrictionModel(name, isStream))
|
||||||
|
|
||||||
case SeqTag => pure(SeqModel)
|
case _: SeqGroupTag => pure(SeqModel)
|
||||||
case ParTag.Detach => pure(DetachModel)
|
case ParTag.Detach => pure(DetachModel)
|
||||||
case _: ParGroupTag => pure(ParModel)
|
case _: ParGroupTag => pure(ParModel)
|
||||||
case XorTag | XorTag.LeftBiased =>
|
case XorTag | XorTag.LeftBiased =>
|
||||||
// TODO should we do smth with XorTag.LeftBiased?
|
|
||||||
pure(XorModel)
|
pure(XorModel)
|
||||||
case _: NoExecTag => none
|
case _: NoExecTag => none
|
||||||
case _ =>
|
case _ =>
|
||||||
|
@ -42,6 +42,10 @@ sealed trait GroupTag extends RawTag
|
|||||||
|
|
||||||
sealed trait SeqGroupTag extends GroupTag
|
sealed trait SeqGroupTag extends GroupTag
|
||||||
|
|
||||||
|
object SeqGroupTag extends SeqGroupTag {
|
||||||
|
override def toString: String = "SeqGroup"
|
||||||
|
}
|
||||||
|
|
||||||
sealed trait ParGroupTag extends GroupTag
|
sealed trait ParGroupTag extends GroupTag
|
||||||
|
|
||||||
case object SeqTag extends SeqGroupTag {
|
case object SeqTag extends SeqGroupTag {
|
||||||
|
@ -48,7 +48,7 @@ trait RawTagGivens {
|
|||||||
case (XorTag, XorTag) =>
|
case (XorTag, XorTag) =>
|
||||||
y.copy(tail = (x.tail, y.tail).mapN(_ ++ _))
|
y.copy(tail = (x.tail, y.tail).mapN(_ ++ _))
|
||||||
case (XorTag.LeftBiased, XorTag) =>
|
case (XorTag.LeftBiased, XorTag) =>
|
||||||
SeqTag.wrap(y.copy(tail = (x.tail, y.tail).mapN(_ ++ _)))
|
SeqGroupTag.wrap(y.copy(tail = (x.tail, y.tail).mapN(_ ++ _)))
|
||||||
case (XorTag, ParTag) => XorParTag(x, y).leaf
|
case (XorTag, ParTag) => XorParTag(x, y).leaf
|
||||||
case (_, ParTag | XorTag) =>
|
case (_, ParTag | XorTag) =>
|
||||||
SeqTag.wrap(y.copy(tail = y.tail.map(_.prepend(x))))
|
SeqTag.wrap(y.copy(tail = y.tail.map(_.prepend(x))))
|
||||||
|
0
npm/error.js
Normal file → Executable file
0
npm/error.js
Normal file → Executable file
0
npm/index.js
Normal file → Executable file
0
npm/index.js
Normal file → Executable file
@ -2,7 +2,7 @@ package aqua.semantics
|
|||||||
|
|
||||||
import aqua.raw.RawContext
|
import aqua.raw.RawContext
|
||||||
import aqua.parser.Ast
|
import aqua.parser.Ast
|
||||||
import aqua.raw.ops.{Call, CallServiceTag, FuncOp, OnTag, ParTag, RawTag, SeqTag}
|
import aqua.raw.ops.{Call, CallServiceTag, FuncOp, OnTag, ParTag, RawTag, SeqGroupTag, SeqTag}
|
||||||
import aqua.parser.Parser
|
import aqua.parser.Parser
|
||||||
import aqua.parser.lift.{LiftParser, Span}
|
import aqua.parser.lift.{LiftParser, Span}
|
||||||
import aqua.raw.value.{LiteralRaw, ValueRaw}
|
import aqua.raw.value.{LiteralRaw, ValueRaw}
|
||||||
@ -11,6 +11,7 @@ import org.scalatest.flatspec.AnyFlatSpec
|
|||||||
import org.scalatest.matchers.should.Matchers
|
import org.scalatest.matchers.should.Matchers
|
||||||
import cats.~>
|
import cats.~>
|
||||||
import cats.data.Chain
|
import cats.data.Chain
|
||||||
|
import cats.syntax.show.*
|
||||||
|
|
||||||
class SemanticsSpec extends AnyFlatSpec with Matchers {
|
class SemanticsSpec extends AnyFlatSpec with Matchers {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user