package commons.script.lang.operations;

import basics.utl.SUtl;
import commons.script.lang.Arguments;
import commons.script.lang.Procedure;

public class MakroDef extends Procedure
{
String key = null;
String val = null;

public MakroDef(String mdef)
{
   parse(mdef);
}


private void parse(String input)
{
   boolean quoting = false;
   StringBuilder b = new StringBuilder();
   for(int i = 0; i < input.length(); i++)
   {
      String c = input.substring(i, i + 1);
      if(c.equals("\""))
         quoting = !quoting;
      else
         if(quoting)
            b.append(c);
         else
            if(c.equals(Arguments.SEPARATOR_KEYVAL))
            {
               key = b.toString();
               b = new StringBuilder();
            }
            else
               b.append(c);
   }
   val = b.toString();
}

public String toString()
{
   return SUtl.sprint("$(%:%)", key, val);
}


public String getKey()
{
   return key;
}


public String getVal()
{
   return val;
}
}
