MCPcopy Create free account
hub / github.com/cosdata/cosdata / parse_cos_graph_query

Function parse_cos_graph_query

org/src/cosql.rs:646–708  ·  view source on GitHub ↗
(input: &str)

Source from the content-addressed store, hash-verified

644}
645
646pub fn parse_cos_graph_query(input: &str) -> IResult<&str, Vec<CosGraphQuery>> {
647 println!("Starting to parse input:\n{}", input);
648 let result = many0(alt((
649 preceded(
650 ws_tag("define"),
651 alt((
652 preceded(
653 ws_tag("entity"),
654 map(entity_definition, |ed| {
655 println!("Parsed entity definition: {:?}", ed);
656 CosGraphQuery::EntityDefinition(ed)
657 }),
658 ),
659 preceded(
660 ws_tag("relationship"),
661 map(relationship_definition, |rd| {
662 println!("Parsed relationship definition: {:?}", rd);
663 CosGraphQuery::RelationshipDefinition(rd)
664 }),
665 ),
666 preceded(
667 ws_tag("rule"),
668 map(rule, |r| {
669 println!("Parsed rule: {:?}", r);
670 CosGraphQuery::Rule(r)
671 }),
672 ),
673 )),
674 ),
675 preceded(
676 ws_tag("insert"),
677 alt((
678 map(entity_insertion, |ei| {
679 println!("Parsed entity insertion: {:?}", ei);
680 CosGraphQuery::EntityInsertion(ei)
681 }),
682 map(relationship_insertion, |ri| {
683 println!("Parsed relationship insertion: {:?}", ri);
684 CosGraphQuery::RelationshipInsertion(ri)
685 }),
686 )),
687 ),
688 preceded(
689 ws_tag("match"),
690 map(query, |q| {
691 println!("Parsed query: {:?}", q);
692 CosGraphQuery::Query(q)
693 }),
694 ),
695 )))(input);
696
697 match &result {
698 Ok((remaining, queries)) => {
699 println!("Parsing completed. {} queries parsed.", queries.len());
700 if !remaining.is_empty() {
701 println!("Remaining unparsed input:\n{}", remaining);
702 }
703 }

Callers 1

mainFunction · 0.85

Calls 8

ws_tagFunction · 0.70
EntityDefinitionClass · 0.70
RuleClass · 0.70
EntityInsertionClass · 0.70
QueryClass · 0.70
is_emptyMethod · 0.45

Tested by

no test coverage detected