package main import ( "mae.earth/pkg/sexpr" "mae.earth/pkg/card" "os" "fmt" ) func main() { c,err := card.New("") if err != nil { fmt.Fprintf(os.Stderr,"error creating card -- %v",err) os.Exit(1) } c.Set("Alice", card.String("in wonderland")) c.Set("List of Things", card.DelimitedString{",", "Butterfly,Rabbit,Hamster"}) c.Set("Id", card.Byte(101)) c.Set("Number #", card.Number(405)) c.Set("Pi", card.Real(3.415)) c.Set("datetime", card.DatetimeNow()) com := card.NewCompound() com.Add(card.String("two")) com.Add(card.DelimitedString{";", "one;two;three;four;five"}) c.Set("option.1", com) com = card.NewCompound() com.Add(card.Number(2)) com.Add(card.DelimitedString{",", "Butterfly,Rabbit,Hamster"}) c.Set("option.2", com) out,err := sexpr.OutputString(c.Sexpr()) if err != nil { fmt.Fprintf(os.Stderr,"error outputing string -- %v\n",err) os.Exit(2) } fmt.Fprintf(os.Stdout,"\n---\n\n%s\n\n---\n",out) c2,err := card.Parse(out) if err != nil { fmt.Fprintf(os.Stderr,"error parsing input -- %v\n",err) os.Exit(3) } fmt.Fprintf(os.Stdout,"%s\n",c2) fmt.Fprintf(os.Stdout,"attributes:\n") for key,value := range c2.Attributes { fmt.Fprintf(os.Stdout,"\t%20s\ttype=%20s\t%s\n",key,value.Name(),value) } }