MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / parse_spec_op

Method parse_spec_op

cranelift/isle/isle/src/parser.rs:509–566  ·  view source on GitHub ↗
(&mut self, s: &str)

Source from the content-addressed store, hash-verified

507 }
508
509 fn parse_spec_op(&mut self, s: &str) -> Result<SpecOp> {
510 let pos = self.pos();
511 match s {
512 "=" => Ok(SpecOp::Eq),
513 "and" => Ok(SpecOp::And),
514 "not" => Ok(SpecOp::Not),
515 "=>" => Ok(SpecOp::Imp),
516 "or" => Ok(SpecOp::Or),
517 "<=" => Ok(SpecOp::Lte),
518 "<" => Ok(SpecOp::Lt),
519 ">=" => Ok(SpecOp::Gte),
520 ">" => Ok(SpecOp::Gt),
521 "bvnot" => Ok(SpecOp::BVNot),
522 "bvand" => Ok(SpecOp::BVAnd),
523 "bvor" => Ok(SpecOp::BVOr),
524 "bvxor" => Ok(SpecOp::BVXor),
525 "bvneg" => Ok(SpecOp::BVNeg),
526 "bvadd" => Ok(SpecOp::BVAdd),
527 "bvsub" => Ok(SpecOp::BVSub),
528 "bvmul" => Ok(SpecOp::BVMul),
529 "bvudiv" => Ok(SpecOp::BVUdiv),
530 "bvurem" => Ok(SpecOp::BVUrem),
531 "bvsdiv" => Ok(SpecOp::BVSdiv),
532 "bvsrem" => Ok(SpecOp::BVSrem),
533 "bvshl" => Ok(SpecOp::BVShl),
534 "bvlshr" => Ok(SpecOp::BVLshr),
535 "bvashr" => Ok(SpecOp::BVAshr),
536 "bvsaddo" => Ok(SpecOp::BVSaddo),
537 "bvule" => Ok(SpecOp::BVUle),
538 "bvult" => Ok(SpecOp::BVUlt),
539 "bvugt" => Ok(SpecOp::BVUgt),
540 "bvuge" => Ok(SpecOp::BVUge),
541 "bvslt" => Ok(SpecOp::BVSlt),
542 "bvsle" => Ok(SpecOp::BVSle),
543 "bvsgt" => Ok(SpecOp::BVSgt),
544 "bvsge" => Ok(SpecOp::BVSge),
545 "rotr" => Ok(SpecOp::Rotr),
546 "rotl" => Ok(SpecOp::Rotl),
547 "extract" => Ok(SpecOp::Extract),
548 "zero_ext" => Ok(SpecOp::ZeroExt),
549 "sign_ext" => Ok(SpecOp::SignExt),
550 "concat" => Ok(SpecOp::Concat),
551 "conv_to" => Ok(SpecOp::ConvTo),
552 "int2bv" => Ok(SpecOp::Int2BV),
553 "bv2int" => Ok(SpecOp::BV2Int),
554 "widthof" => Ok(SpecOp::WidthOf),
555 "if" => Ok(SpecOp::If),
556 "switch" => Ok(SpecOp::Switch),
557 "subs" => Ok(SpecOp::Subs),
558 "popcnt" => Ok(SpecOp::Popcnt),
559 "rev" => Ok(SpecOp::Rev),
560 "cls" => Ok(SpecOp::Cls),
561 "clz" => Ok(SpecOp::Clz),
562 "load_effect" => Ok(SpecOp::LoadEffect),
563 "store_effect" => Ok(SpecOp::StoreEffect),
564 x => Err(self.error(pos, format!("Not a valid spec operator: {x}"))),
565 }
566 }

Callers 1

parse_spec_exprMethod · 0.80

Calls 3

OkFunction · 0.85
posMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected