---input---
namespace gui;

import "Window"

public struct AnchorValue
{
   AnchorValueType type;

   union
   {
      int distance;
      float percent;      
   };
   property int
   {
      set { distance = value; type = offset; }
      get { return distance; }
   }
   property double
   {
      set { percent = (float) value; type = relative; }
      get { return (double) percent; }
   }

   char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
   {
      if(type == offset)
      {
         sprintf(stringOutput, "%d", distance);
      }
      else if(type == relative)
      {
         int c;
         int last = 0;
         sprintf(stringOutput, "%f", percent);
         c = strlen(stringOutput)-1;
         for( ; c >= 0; c--)
         {
            if(stringOutput[c] != '0') 
               last = Max(last, c);
            if(stringOutput[c] == '.')
            {
               if(last == c)
               {
                  stringOutput[c+1] = '0';
                  stringOutput[c+2] = 0;
               }
               else
                  stringOutput[last+1] = 0;
               break;
            }
         }
      }
      if(needClass) *needClass = false;
      return stringOutput;
   }

   bool OnGetDataFromString(char * stringOutput)
   {
      char * end;
      if(strchr(stringOutput, '.'))
      {
         float percent = (float)strtod(stringOutput, &end);
         
         if(end != stringOutput)
         {
            this.percent = percent;
            type = relative;
            return true;
         }
      }
      else if(stringOutput[0])
      {
         int distance = strtol(stringOutput, &end, 0);
         if(end != stringOutput)
         {
            this.distance = distance;
            type = offset;
            return true;
         }
      }
      else
      {
         distance = 0;
         type = 0;
      }
      return false;
   }
};

public struct MiddleAnchorValue
{
   AnchorValueType type;

   union
   {
      int distance;
      float percent;      
   };
   property int
   {
      set { distance = value; type = none; }
      get { return distance; }
   }
   property double
   {
      set { percent = (float) value; type = middleRelative; }
      get { return (double) percent; }
   }

   char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
   {
      if(type == middleRelative)
      {
         int c;
         int last = 0;
         sprintf(stringOutput, "%f", percent);
         c = strlen(stringOutput)-1;
         for( ; c >= 0; c--)
         {
            if(stringOutput[c] != '0') 
               last = Max(last, c);
            if(stringOutput[c] == '.')
            {
               if(last == c)
               {
                  stringOutput[c+1] = '0';
                  stringOutput[c+2] = 0;
               }
               else
                  stringOutput[last+1] = 0;
               break;
            }
         }
      }
      else if(type == none && distance)
      {
         sprintf(stringOutput, "%d", distance);
      }
      if(needClass) *needClass = false;
      return stringOutput;
   }

   bool OnGetDataFromString(char * stringOutput)
   {
      if(strchr(stringOutput, '.'))
      {
         percent = (float)strtod(stringOutput, null);
         type = middleRelative;
      }
      else
      {
         distance = strtol(stringOutput, null, 0);
         type = none;
      }
      return true;
   }
};

public enum AnchorValueType { none, offset, relative, middleRelative, cascade, vTiled, hTiled };

public struct Anchor
{
   union { AnchorValue left; MiddleAnchorValue horz; };
   union { AnchorValue top; MiddleAnchorValue vert; };
   AnchorValue right, bottom;      

   char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
   {
      char tempString[256];
      char * anchorValue;
      bool subNeedClass;

      tempString[0] = '\0';
      anchorValue = left.OnGetString(tempString, null, &subNeedClass);
      if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "left = "); strcat(stringOutput, anchorValue); }
      
      //if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative)
      if(!right.type && ((!left.type && horz.distance) || horz.type == middleRelative))
      {
         tempString[0] = '\0';
         anchorValue = horz.OnGetString(tempString, null, &subNeedClass);
         if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "horz = "); strcat(stringOutput, anchorValue); }
      }
      
      tempString[0] = '\0';
      anchorValue = top.OnGetString(tempString, null, &subNeedClass);
      if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "top = "); strcat(stringOutput, anchorValue); }
      
      tempString[0] = '\0';
      anchorValue = right.OnGetString(tempString, null, &subNeedClass);
      if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "right = "); strcat(stringOutput, anchorValue); }

      // if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative)
      if(!bottom.type && ((!top.type && vert.distance) || vert.type == middleRelative))
      {
         tempString[0] = '\0';
         anchorValue = vert.OnGetString(tempString, null, &subNeedClass);
         if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "vert = "); strcat(stringOutput, anchorValue); }
      }
      
      tempString[0] = '\0';
      anchorValue = bottom.OnGetString(tempString, null, &subNeedClass);
      if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "bottom = "); strcat(stringOutput, anchorValue); }
      
      return stringOutput;
   }

   bool OnGetDataFromString(char * string)
   {
      this = Anchor {};
      return class::OnGetDataFromString(string);
   }

   bool OnSaveEdit(DropBox dropBox, void * object)
   {
      return dropBox.Save();
   }

   Window OnEdit(Window listBox, Window master, int x, int y, int w, int h, Window control)
   {
      char * string = "";
      AnchorDropBox comboBox
      {
         editText = true;
         parent = listBox;
         master = master;
         position = Point { x, y };
         //clientSize = Size { h = h };
         //size.w = w;
         size = { w, h };
         anchorValue = this;
         control = control;
         borderStyle = 0;
      };
      
      comboBox.Create();

      {
         char tempString[MAX_F_STRING] = "";
         bool needClass = false;
         char * result = OnGetString(tempString, null, &needClass);
         if(result) string = result;
      }
      comboBox.contents = string;
      return comboBox;
   }
};

private class AnchorButton : Button
{
   toggle = true, bevel = false;

   void OnRedraw(Surface surface)
   {
      int cw = clientSize.w;
      int ch = clientSize.h;

      surface.SetForeground(black);
      if(checked)
      {
         surface.SetBackground(Color { 85,85,85 });
         surface.Area(0,0, cw-1, ch-1);
      }
      else
         surface.LineStipple(0xAAAA);

      surface.Rectangle(0,0,cw-1,ch-1);

      if(active)
      {
         surface.LineStipple(0xAAAA);
         surface.Rectangle(2,2,cw-3,ch-3);
      }
   }

   bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods)
   {
      AnchorDropBox anchorDropBox = (AnchorDropBox)master;
      Anchor anchor = anchorDropBox.anchorValue;
      Window control = anchorDropBox.control;
      DataBox dropMaster = (DataBox)anchorDropBox.master;
      int id = button.id;

      switch(id)
      {
         case 0: anchor.left.type   = button.checked ? offset : none; break;
         case 1: anchor.top.type    = button.checked ? offset : none; break;
         case 2: anchor.right.type  = button.checked ? offset : none; break;
         case 3: anchor.bottom.type = button.checked ? offset : none; break;
      }

      if(anchor.horz.type == middleRelative && (id == 0 || id == 2))
      {
         anchorDropBox.relButtons[0].checked = false;
         anchorDropBox.relButtons[2].checked = false;
      }
      if(anchor.vert.type == middleRelative && (id == 1 || id == 3))
      {
         anchorDropBox.relButtons[1].checked = false;
         anchorDropBox.relButtons[3].checked = false;
      }
      anchorDropBox.relButtons[id].checked = false;

      //anchor.horz.type = none;
      //anchor.vert.type = none;

      {
         int vpw, vph;
         int x,y,w,h;
         Window parent = control.parent;

         // Fix Anchor
         x = control.position.x;
         y = control.position.y;
         w = control.size.w;
         h = control.size.h;

         vpw = parent.clientSize.w;
         vph = parent.clientSize.h;
         if(control.nonClient)
         {
            vpw = parent.size.w;
            vph = parent.size.h;
         }
         else if(((BorderBits)control.borderStyle).fixed)
         {
            if(!control.dontScrollHorz && parent.scrollArea.w) vpw = parent.scrollArea.w;
            if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h;
         }

         if(anchor.left.type == offset) anchor.left.distance = x;
         else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw;
         if(anchor.top.type == offset) anchor.top.distance = y;
         else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph;
         if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w);
         //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;
         else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw;
         if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h);
         //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;
         else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph;

         if(!anchor.left.type && !anchor.right.type)
         {
            anchor.horz.distance = (x + w / 2) - (vpw / 2);
            //anchor.horz.type = anchor.horz.distance ? offset : 0;
         }
         else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw;
         if(!anchor.top.type && !anchor.bottom.type)
         {
            anchor.vert.distance = (y + h / 2) - (vph / 2);
            //anchor.vert.type = anchor.vert.distance ? offset : 0;
         }
         else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph;
      }

      {
         char tempString[1024] = "";
         bool needClass = false;
         char * string = anchor.OnGetString(tempString, null, &needClass);
         anchorDropBox.contents = string;
      }

      dropMaster.SetData(&anchor, false);
      anchorDropBox.anchorValue = anchor;
      return true;
   }
}

private class AnchorRelButton : Button
{
   toggle = true;
   bevel = false;
   text = "%";
   //bevelOver = true;

   void OnRedraw(Surface surface)
   {
      int cw = clientSize.w;
      int ch = clientSize.h;
      
      if(checked)
      {
         surface.SetForeground(black);
      }
      else
      {
         surface.SetForeground(Color{170,170,170});
      }
      surface.WriteText(5,2, "%", 1);

      if(active)
      {
         surface.LineStipple(0xAAAA);
         surface.Rectangle(3,3,cw-4,ch-4);
      }
   }

   bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods)
   {
      AnchorDropBox anchorDropBox = (AnchorDropBox)master;
      Anchor anchor = anchorDropBox.anchorValue;
      Window control = anchorDropBox.control;
      DataBox dropMaster = (DataBox)anchorDropBox.master;
      int id = button.id;

      if((id == 0 || id == 2) && ((!anchor.left.type && !anchor.right.type) || anchor.left.type == middleRelative))
      {
         if(button.checked) anchor.horz.type = middleRelative; else anchor.horz.type = none;
         anchorDropBox.relButtons[(id + 2)%4].checked = button.checked;
      }
      else if((id == 1 || id == 3) && ((!anchor.top.type && !anchor.bottom.type) || anchor.top.type == middleRelative))
      {
         if(button.checked) anchor.vert.type = middleRelative; else anchor.vert.type = none;
         anchorDropBox.relButtons[(id + 2)%4].checked = button.checked;
      }
      else
      {
         switch(id)
         {
            case 0: anchor.left.type   = button.checked ? relative : (anchor.left.type   ? offset : none); break;
            case 1: anchor.top.type    = button.checked ? relative : (anchor.top.type    ? offset : none); break;
            case 2: anchor.right.type  = button.checked ? relative : (anchor.right.type  ? offset : none); break;
            case 3: anchor.bottom.type = button.checked ? relative : (anchor.bottom.type ? offset : none); break;
         }
         anchorDropBox.buttons[id].checked = true;
         if(anchor.horz.type == middleRelative) anchor.horz.type = none;
         if(anchor.vert.type == middleRelative) anchor.vert.type = none;
      }

      {
         int vpw, vph;
         int x,y,w,h;
         Window parent = control.parent;

         // Fix Anchor
         x = control.position.x;
         y = control.position.y;
         w = control.size.w;
         h = control.size.h;

         vpw = parent.clientSize.w;
         vph = parent.clientSize.h;
         if(control.nonClient)
         {
            vpw = parent.size.w;
            vph = parent.size.h;
         }
         else if(((BorderBits)control.borderStyle).fixed)
         {
            if(!control.dontScrollHorz && parent.scrollArea.w)  vpw = parent.scrollArea.w;
            if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h;
         }

         if(anchor.left.type == offset) anchor.left.distance = x;
         else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw;
         if(anchor.top.type == offset) anchor.top.distance = y;
         else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph;
         if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w);
         //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;
         else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw;
         if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h);
         //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;
         else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph;

         if(!anchor.left.type && !anchor.right.type)
         {
            anchor.horz.distance = (x + w / 2) - (vpw / 2);
            //anchor.horz.type = anchor.horz.distance ? offset : none;
         }
         else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw;
         if(!anchor.top.type && !anchor.bottom.type) 
         {
            anchor.vert.distance = (y + h / 2) - (vph / 2);
            //anchor.vert.type = anchor.vert.distance ? offset : none;
         }
         else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph;
      }

      {
         char tempString[1024] = "";
         bool needClass = false;
         char * string = anchor.OnGetString(tempString, null, &needClass);
         anchorDropBox.contents = string;
      }

      dropMaster.SetData(&anchor, false);
      anchorDropBox.anchorValue = anchor;
      return true;
   }
}

private class AnchorEditor : Window
{
   interim = true;
   borderStyle = deepContour;
   size.h = 92;

   bool OnKeyDown(Key key, unichar ch)
   {
      if(key == escape)
         return master.OnKeyDown(key, ch);
      return true;
   }
}

private class AnchorDropBox : DropBox
{
   Anchor anchorValue;
   Window control;
   Button relButtons[4], buttons[4];

   AnchorEditor anchorEditor
   {
      master = this;
      autoCreate = false;
   };

   Window OnDropDown()
   {
      int c;
      Button
      {
         anchorEditor,
         anchor = Anchor { left = 28, top = 28, right = 28, bottom = 28 },
         inactive = true, disabled = true
      };
      for(c = 0; c<4; c++)
      {
         Button button = buttons[c] = AnchorButton 
         { 
            anchorEditor, id = c,
            size = Size { (c%2)?10:28, (c%2)?28:10 }
         };
         Button relButton = relButtons[c] = AnchorRelButton
         {
            anchorEditor, id = c;
         };

         switch(c)
         {
            case 0:
               if(anchorValue.left.type && anchorValue.left.type != middleRelative) button.checked = true;
               if(anchorValue.left.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true;
               
               button.anchor = Anchor { left = 0 };
               relButton.anchor = Anchor { left = 5, vert = 16 };
               break;
            case 1:
               if(anchorValue.top.type && anchorValue.top.type != middleRelative) button.checked = true;
               if(anchorValue.top.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true;

               button.anchor = Anchor { top = 0 };
               relButton.anchor = Anchor { top = 5, horz = 16 };
               break;
            case 2: 
               if(anchorValue.right.type && anchorValue.right.type != middleRelative) button.checked = true;
               if(anchorValue.right.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true;
               
               button.anchor = Anchor { right = 0 };
               relButton.anchor = Anchor { right = 5, vert = 16 };
               break;
            case 3: 
               if(anchorValue.bottom.type && anchorValue.bottom.type != middleRelative) button.checked = true;
               if(anchorValue.bottom.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true;

               button.anchor = Anchor { bottom = 0 };
               relButton.anchor = Anchor { bottom = 5, horz = 16 };
               break;
         }
      }
      anchorEditor.Create();
      return anchorEditor;
   }
      
   void OnCloseDropDown(Window anchorEditor)
   {
      // TOFIX: Patch for update bug
      master.Update(null);
      anchorEditor.Destroy(0);
   }

   bool DataBox::NotifyTextEntry(AnchorDropBox dropBox, char * string, bool save)
   {
      Anchor anchor = dropBox.anchorValue;
      Window control = dropBox.control;

      if(save)
      {
         if(anchor.OnGetDataFromString(string))
         {
            SetData(&anchor, false);
            dropBox.anchorValue = anchor;
         }
      }
      else
      {
         char tempString[1024] = "";
         bool needClass = false;
         char * string = anchor.OnGetString(tempString, null, &needClass);
         dropBox.contents = string;
      }
      return true;
   }
}

---tokens---
'namespace'   Keyword
' '           Text
'gui'         Name
';'           Punctuation
'\n'          Text

'\n'          Text

'import'      Keyword
' '           Text
'"'           Literal.String
'Window'      Literal.String
'"'           Literal.String
'\n'          Text

'\n'          Text

'public'      Keyword
' '           Text
'struct'      Keyword
' '           Text
'AnchorValue' Name.Class
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'AnchorValueType' Name
' '           Text
'type'        Name
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'union'       Keyword
'\n   '       Text
'{'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'distance'    Name
';'           Punctuation
'\n'          Text

'      '      Text
'float'       Keyword.Type
' '           Text
'percent'     Name
';'           Punctuation
'      \n   ' Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'property'    Keyword
' '           Text
'int'         Keyword.Type
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'set'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'distance'    Name
' '           Text
'='           Operator
' '           Text
'value'       Name.Builtin
';'           Punctuation
' '           Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'offset'      Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'get'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'return'      Keyword
' '           Text
'distance'    Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'   '         Text
'property'    Keyword
' '           Text
'double'      Keyword.Type
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'set'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'value'       Name.Builtin
';'           Punctuation
' '           Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'relative'    Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'get'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'return'      Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
')'           Punctuation
' '           Text
'percent'     Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'OnGetString' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'stringOutput' Name
','           Punctuation
' '           Text
'void'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'fieldData'   Name
','           Punctuation
' '           Text
'bool'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'needClass'   Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'sprintf'     Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'%d'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'distance'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'c'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'last'        Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'         '   Text
'sprintf'     Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'%f'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'percent'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'c'           Name
' '           Text
'='           Operator
' '           Text
'strlen'      Name
'('           Punctuation
'stringOutput' Name
')'           Punctuation
'-1'          Literal.Number.Integer
';'           Punctuation
'\n'          Text

'         '   Text
'for'         Keyword
'('           Punctuation
' '           Text
';'           Punctuation
' '           Text
'c'           Name
' '           Text
'>'           Operator
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text
'c'           Name
'-'           Operator
'-'           Operator
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'!'           Operator
'='           Operator
' '           Text
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' \n               ' Text
'last'        Name
' '           Text
'='           Operator
' '           Text
'Max'         Name
'('           Punctuation
'last'        Name
','           Punctuation
' '           Text
'c'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'='           Operator
'='           Operator
' '           Text
"'"           Literal.String.Char
'.'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text

'            ' Text
'{'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'last'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'c'           Name
')'           Punctuation
'\n'          Text

'               ' Text
'{'           Punctuation
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'c'           Name
'+'           Operator
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'c'           Name
'+'           Operator
'2'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'               ' Text
'}'           Punctuation
'\n'          Text

'               ' Text
'else'        Keyword
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'last'        Name
'+'           Operator
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'}'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'needClass'   Name
')'           Punctuation
' '           Text
'*'           Operator
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'stringOutput' Name
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'OnGetDataFromString' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'stringOutput' Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'end'         Name
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'strchr'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
"'"           Literal.String.Char
'.'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'float'       Keyword.Type
' '           Text
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'strtod'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'&'           Operator
'end'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         \n         ' Text
'if'          Keyword
'('           Punctuation
'end'         Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'stringOutput' Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'this'        Name.Builtin
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'percent'     Name
';'           Punctuation
'\n'          Text

'            ' Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'relative'    Name
';'           Punctuation
'\n'          Text

'            ' Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'distance'    Name
' '           Text
'='           Operator
' '           Text
'strtol'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'&'           Operator
'end'         Name
','           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'end'         Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'stringOutput' Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'this'        Name.Builtin
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'distance'    Name
';'           Punctuation
'\n'          Text

'            ' Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'offset'      Name
';'           Punctuation
'\n'          Text

'            ' Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'distance'    Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'         '   Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'public'      Keyword
' '           Text
'struct'      Keyword
' '           Text
'MiddleAnchorValue' Name.Class
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'AnchorValueType' Name
' '           Text
'type'        Name
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'union'       Keyword
'\n   '       Text
'{'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'distance'    Name
';'           Punctuation
'\n'          Text

'      '      Text
'float'       Keyword.Type
' '           Text
'percent'     Name
';'           Punctuation
'      \n   ' Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'property'    Keyword
' '           Text
'int'         Keyword.Type
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'set'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'distance'    Name
' '           Text
'='           Operator
' '           Text
'value'       Name.Builtin
';'           Punctuation
' '           Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'get'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'return'      Keyword
' '           Text
'distance'    Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'   '         Text
'property'    Keyword
' '           Text
'double'      Keyword.Type
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'set'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'value'       Name.Builtin
';'           Punctuation
' '           Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'middleRelative' Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'get'         Keyword
' '           Text
'{'           Punctuation
' '           Text
'return'      Keyword
' '           Text
'('           Punctuation
'double'      Keyword.Type
')'           Punctuation
' '           Text
'percent'     Name
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'OnGetString' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'stringOutput' Name
','           Punctuation
' '           Text
'void'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'fieldData'   Name
','           Punctuation
' '           Text
'bool'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'needClass'   Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'c'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'last'        Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'         '   Text
'sprintf'     Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'%f'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'percent'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'c'           Name
' '           Text
'='           Operator
' '           Text
'strlen'      Name
'('           Punctuation
'stringOutput' Name
')'           Punctuation
'-1'          Literal.Number.Integer
';'           Punctuation
'\n'          Text

'         '   Text
'for'         Keyword
'('           Punctuation
' '           Text
';'           Punctuation
' '           Text
'c'           Name
' '           Text
'>'           Operator
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text
'c'           Name
'-'           Operator
'-'           Operator
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'!'           Operator
'='           Operator
' '           Text
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
' \n               ' Text
'last'        Name
' '           Text
'='           Operator
' '           Text
'Max'         Name
'('           Punctuation
'last'        Name
','           Punctuation
' '           Text
'c'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'='           Operator
'='           Operator
' '           Text
"'"           Literal.String.Char
'.'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
'\n'          Text

'            ' Text
'{'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'last'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'c'           Name
')'           Punctuation
'\n'          Text

'               ' Text
'{'           Punctuation
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'c'           Name
'+'           Operator
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'0'           Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'c'           Name
'+'           Operator
'2'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'               ' Text
'}'           Punctuation
'\n'          Text

'               ' Text
'else'        Keyword
'\n'          Text

'                  ' Text
'stringOutput' Name
'['           Punctuation
'last'        Name
'+'           Operator
'1'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'}'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'none'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'distance'    Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'sprintf'     Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'%d'          Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'distance'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'needClass'   Name
')'           Punctuation
' '           Text
'*'           Operator
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'stringOutput' Name
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'OnGetDataFromString' Name
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'stringOutput' Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'strchr'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
"'"           Literal.String.Char
'.'           Literal.String.Char
"'"           Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'strtod'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'null'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'middleRelative' Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'distance'    Name
' '           Text
'='           Operator
' '           Text
'strtol'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'public'      Keyword
' '           Text
'enum'        Keyword
' '           Text
'AnchorValueType' Name
' '           Text
'{'           Punctuation
' '           Text
'none'        Name
','           Punctuation
' '           Text
'offset'      Name
','           Punctuation
' '           Text
'relative'    Name
','           Punctuation
' '           Text
'middleRelative' Name
','           Punctuation
' '           Text
'cascade'     Name
','           Punctuation
' '           Text
'vTiled'      Name
','           Punctuation
' '           Text
'hTiled'      Name
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'public'      Keyword
' '           Text
'struct'      Keyword
' '           Text
'Anchor'      Name.Class
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'union'       Keyword
' '           Text
'{'           Punctuation
' '           Text
'AnchorValue' Name
' '           Text
'left'        Name
';'           Punctuation
' '           Text
'MiddleAnchorValue' Name
' '           Text
'horz'        Name
';'           Punctuation
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'union'       Keyword
' '           Text
'{'           Punctuation
' '           Text
'AnchorValue' Name
' '           Text
'top'         Name
';'           Punctuation
' '           Text
'MiddleAnchorValue' Name
' '           Text
'vert'        Name
';'           Punctuation
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'AnchorValue' Name
' '           Text
'right'       Name
','           Punctuation
' '           Text
'bottom'      Name
';'           Punctuation
'      \n\n   ' Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'OnGetString' Name.Function
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'stringOutput' Name
','           Punctuation
' '           Text
'void'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'fieldData'   Name
','           Punctuation
' '           Text
'bool'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'needClass'   Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'char'        Keyword.Type
' '           Text
'tempString'  Name
'['           Punctuation
'256'         Literal.Number.Integer
']'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'anchorValue' Name
';'           Punctuation
'\n'          Text

'      '      Text
'bool'        Keyword.Type
' '           Text
'subNeedClass' Name
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'      '      Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'left'        Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'left = '     Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      \n      ' Text
'//if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative)\n' Comment.Single

'      '      Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'('           Punctuation
'!'           Operator
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'horz'        Name
'.'           Punctuation
'distance'    Name
')'           Punctuation
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'         '   Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'horz'        Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'horz = '     Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      \n      ' Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'      '      Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'top'         Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'top = '      Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      \n      ' Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'      '      Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'right'       Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'right = '    Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'// if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative)\n' Comment.Single

'      '      Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'('           Punctuation
'!'           Operator
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'vert'        Name
'.'           Punctuation
'distance'    Name
')'           Punctuation
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'         '   Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'vert'        Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'vert = '     Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      \n      ' Text
'tempString'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
"'"           Literal.String.Char
'\\0'         Literal.String.Char
"'"           Literal.String.Char
';'           Punctuation
'\n'          Text

'      '      Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'bottom'      Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'subNeedClass' Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'{'           Punctuation
' '           Text
'if'          Keyword
'('           Punctuation
'stringOutput' Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
')'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
', '          Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'"'           Literal.String
'bottom = '   Literal.String
'"'           Literal.String
')'           Punctuation
';'           Punctuation
' '           Text
'strcat'      Name
'('           Punctuation
'stringOutput' Name
','           Punctuation
' '           Text
'anchorValue' Name
')'           Punctuation
';'           Punctuation
' '           Text
'}'           Punctuation
'\n'          Text

'      \n      ' Text
'return'      Keyword
' '           Text
'stringOutput' Name
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'OnGetDataFromString' Name.Function
'('           Punctuation
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'this'        Name.Builtin
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
'}'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'class'       Keyword
':'           Operator
':'           Operator
'OnGetDataFromString' Name
'('           Punctuation
'string'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'OnSaveEdit'  Name.Function
'('           Punctuation
'DropBox'     Name
' '           Text
'dropBox'     Name
','           Punctuation
' '           Text
'void'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'object'      Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'dropBox'     Name
'.'           Punctuation
'Save'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'Window'      Name
' '           Text
'OnEdit'      Name.Function
'('           Punctuation
'Window'      Name
' '           Text
'listBox'     Name
','           Punctuation
' '           Text
'Window'      Name
' '           Text
'master'      Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'x'           Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'y'           Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'w'           Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'h'           Name
','           Punctuation
' '           Text
'Window'      Name
' '           Text
'control'     Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'      '      Text
'AnchorDropBox' Name
' '           Text
'comboBox'    Name
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'editText'    Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'parent'      Name
' '           Text
'='           Operator
' '           Text
'listBox'     Name
';'           Punctuation
'\n'          Text

'         '   Text
'master'      Name
' '           Text
'='           Operator
' '           Text
'master'      Name
';'           Punctuation
'\n'          Text

'         '   Text
'position'    Name
' '           Text
'='           Operator
' '           Text
'Point'       Name
' '           Text
'{'           Punctuation
' '           Text
'x'           Name
','           Punctuation
' '           Text
'y'           Name
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'//clientSize = Size { h = h };\n' Comment.Single

'         '   Text
'//size.w = w;\n' Comment.Single

'         '   Text
'size'        Name
' '           Text
'='           Operator
' '           Text
'{'           Punctuation
' '           Text
'w'           Name
','           Punctuation
' '           Text
'h'           Name
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'this'        Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'control'     Name
' '           Text
'='           Operator
' '           Text
'control'     Name
';'           Punctuation
'\n'          Text

'         '   Text
'borderStyle' Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'      \n      ' Text
'comboBox'    Name
'.'           Punctuation
'Create'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'tempString'  Name
'['           Punctuation
'MAX_F_STRING' Name
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'         '   Text
'bool'        Keyword.Type
' '           Text
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'result'      Name
' '           Text
'='           Operator
' '           Text
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'needClass'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'result'      Name
')'           Punctuation
' '           Text
'string'      Name
' '           Text
'='           Operator
' '           Text
'result'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'comboBox'    Name
'.'           Punctuation
'contents'    Name
' '           Text
'='           Operator
' '           Text
'string'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'comboBox'    Name
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'private'     Keyword
' '           Text
'class'       Keyword
' '           Text
'AnchorButton' Name.Label
' '           Text
':'           Punctuation
' '           Text
'Button'      Name
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'toggle'      Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
','           Punctuation
' '           Text
'bevel'       Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'void'        Keyword.Type
' '           Text
'OnRedraw'    Name.Function
'('           Punctuation
'Surface'     Name
' '           Text
'surface'     Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'cw'          Name
' '           Text
'='           Operator
' '           Text
'clientSize'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'ch'          Name
' '           Text
'='           Operator
' '           Text
'clientSize'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'surface'     Name
'.'           Punctuation
'SetForeground' Name
'('           Punctuation
'black'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'checked'     Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'SetBackground' Name
'('           Punctuation
'Color'       Name
' '           Text
'{'           Punctuation
' '           Text
'85'          Literal.Number.Integer
','           Punctuation
'85'          Literal.Number.Integer
','           Punctuation
'85'          Literal.Number.Integer
' '           Text
'}'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'Area'        Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
' '           Text
'cw'          Name
'-1'          Literal.Number.Integer
','           Punctuation
' '           Text
'ch'          Name
'-1'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'LineStipple' Name
'('           Punctuation
'0xAAAA'      Literal.Number.Hex
')'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'surface'     Name
'.'           Punctuation
'Rectangle'   Name
'('           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
'0'           Literal.Number.Integer
','           Punctuation
'cw'          Name
'-1'          Literal.Number.Integer
','           Punctuation
'ch'          Name
'-1'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'active'      Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'LineStipple' Name
'('           Punctuation
'0xAAAA'      Literal.Number.Hex
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'Rectangle'   Name
'('           Punctuation
'2'           Literal.Number.Integer
','           Punctuation
'2'           Literal.Number.Integer
','           Punctuation
'cw'          Name
'-3'          Literal.Number.Integer
','           Punctuation
'ch'          Name
'-3'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'AnchorEditor' Name
':'           Operator
':'           Operator
'NotifyClicked' Name
'('           Punctuation
'Button'      Name
' '           Text
'button'      Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'x'           Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'y'           Name
','           Punctuation
' '           Text
'Modifiers'   Name
' '           Text
'mods'        Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'AnchorDropBox' Name
' '           Text
'anchorDropBox' Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'AnchorDropBox' Name
')'           Punctuation
'master'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'Anchor'      Name
' '           Text
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'anchorDropBox' Name
'.'           Punctuation
'anchorValue' Name
';'           Punctuation
'\n'          Text

'      '      Text
'Window'      Name
' '           Text
'control'     Name
' '           Text
'='           Operator
' '           Text
'anchorDropBox' Name
'.'           Punctuation
'control'     Name
';'           Punctuation
'\n'          Text

'      '      Text
'DataBox'     Name
' '           Text
'dropMaster'  Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'DataBox'     Name
')'           Punctuation
'anchorDropBox' Name
'.'           Punctuation
'master'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'id'          Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'id'          Name
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'switch'      Keyword
'('           Punctuation
'id'          Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'case'        Keyword
' '           Text
'0'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
'   '         Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'         '   Text
'case'        Keyword
' '           Text
'1'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
'    '        Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'         '   Text
'case'        Keyword
' '           Text
'2'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
'  '          Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'         '   Text
'case'        Keyword
' '           Text
'3'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'0'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'2'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'1'           Literal.Number.Integer
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'1'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'3'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'id'          Name
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'//anchor.horz.type = none;\n' Comment.Single

'      '      Text
'//anchor.vert.type = none;\n' Comment.Single

'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'vpw'         Name
','           Punctuation
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'x'           Name
','           Punctuation
'y'           Name
','           Punctuation
'w'           Name
','           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'Window'      Name
' '           Text
'parent'      Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'parent'      Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'// Fix Anchor\n' Comment.Single

'         '   Text
'x'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'position'    Name
'.'           Punctuation
'x'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'y'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'position'    Name
'.'           Punctuation
'y'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'w'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'h'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'clientSize'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'clientSize'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'control'     Name
'.'           Punctuation
'nonClient'   Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'            ' Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'('           Punctuation
'('           Punctuation
'BorderBits'  Name
')'           Punctuation
'control'     Name
'.'           Punctuation
'borderStyle' Name
')'           Punctuation
'.'           Punctuation
'fixed'       Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'control'     Name
'.'           Punctuation
'dontScrollHorz' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'w'           Name
')'           Punctuation
' '           Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'control'     Name
'.'           Punctuation
'dontScrollVert' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'h'           Name
')'           Punctuation
' '           Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'x'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'x'           Name
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'y'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'y'           Name
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'vpw'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'vph'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'//anchor.horz.type = anchor.horz.distance ? offset : 0;\n' Comment.Single

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'//anchor.vert.type = anchor.vert.distance ? offset : 0;\n' Comment.Single

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'('           Punctuation
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'tempString'  Name
'['           Punctuation
'1024'        Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'         '   Text
'bool'        Keyword.Type
' '           Text
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'needClass'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'contents'    Name
' '           Text
'='           Operator
' '           Text
'string'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'dropMaster'  Name
'.'           Punctuation
'SetData'     Name
'('           Punctuation
'&'           Operator
'anchor'      Name
','           Punctuation
' '           Text
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'anchorDropBox' Name
'.'           Punctuation
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
'\n'          Text

'\n'          Text

'private'     Keyword
' '           Text
'class'       Keyword
' '           Text
'AnchorRelButton' Name.Label
' '           Text
':'           Punctuation
' '           Text
'Button'      Name
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'toggle'      Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'bevel'       Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'text'        Name
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'%'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'   '         Text
'//bevelOver = true;\n' Comment.Single

'\n'          Text

'   '         Text
'void'        Keyword.Type
' '           Text
'OnRedraw'    Name.Function
'('           Punctuation
'Surface'     Name
' '           Text
'surface'     Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'cw'          Name
' '           Text
'='           Operator
' '           Text
'clientSize'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'ch'          Name
' '           Text
'='           Operator
' '           Text
'clientSize'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'      \n      ' Text
'if'          Keyword
'('           Punctuation
'checked'     Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'SetForeground' Name
'('           Punctuation
'black'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'SetForeground' Name
'('           Punctuation
'Color'       Name
'{'           Punctuation
'170'         Literal.Number.Integer
','           Punctuation
'170'         Literal.Number.Integer
','           Punctuation
'170'         Literal.Number.Integer
'}'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'surface'     Name
'.'           Punctuation
'WriteText'   Name
'('           Punctuation
'5'           Literal.Number.Integer
','           Punctuation
'2'           Literal.Number.Integer
','           Punctuation
' '           Text
'"'           Literal.String
'%'           Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'active'      Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'LineStipple' Name
'('           Punctuation
'0xAAAA'      Literal.Number.Hex
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'surface'     Name
'.'           Punctuation
'Rectangle'   Name
'('           Punctuation
'3'           Literal.Number.Integer
','           Punctuation
'3'           Literal.Number.Integer
','           Punctuation
'cw'          Name
'-4'          Literal.Number.Integer
','           Punctuation
'ch'          Name
'-4'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'AnchorEditor' Name
':'           Operator
':'           Operator
'NotifyClicked' Name
'('           Punctuation
'Button'      Name
' '           Text
'button'      Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'x'           Name
','           Punctuation
' '           Text
'int'         Keyword.Type
' '           Text
'y'           Name
','           Punctuation
' '           Text
'Modifiers'   Name
' '           Text
'mods'        Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'AnchorDropBox' Name
' '           Text
'anchorDropBox' Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'AnchorDropBox' Name
')'           Punctuation
'master'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'Anchor'      Name
' '           Text
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'anchorDropBox' Name
'.'           Punctuation
'anchorValue' Name
';'           Punctuation
'\n'          Text

'      '      Text
'Window'      Name
' '           Text
'control'     Name
' '           Text
'='           Operator
' '           Text
'anchorDropBox' Name
'.'           Punctuation
'control'     Name
';'           Punctuation
'\n'          Text

'      '      Text
'DataBox'     Name
' '           Text
'dropMaster'  Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'DataBox'     Name
')'           Punctuation
'anchorDropBox' Name
'.'           Punctuation
'master'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'id'          Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'id'          Name
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'('           Punctuation
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
')'           Punctuation
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'button'      Name
'.'           Punctuation
'checked'     Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'middleRelative' Name
';'           Punctuation
' '           Text
'else'        Keyword
' '           Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'('           Punctuation
'id'          Name
' '           Text
'+'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
'%'           Operator
'4'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'('           Punctuation
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'1'           Literal.Number.Integer
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'id'          Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'3'           Literal.Number.Integer
')'           Punctuation
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'('           Punctuation
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
')'           Punctuation
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'button'      Name
'.'           Punctuation
'checked'     Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'middleRelative' Name
';'           Punctuation
' '           Text
'else'        Keyword
' '           Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'relButtons'  Name
'['           Punctuation
'('           Punctuation
'id'          Name
' '           Text
'+'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
'%'           Operator
'4'           Literal.Number.Integer
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'switch'      Keyword
'('           Punctuation
'id'          Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'0'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
'   '         Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'relative'    Name.Label
' '           Text
':'           Punctuation
' '           Text
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
'   '         Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
')'           Punctuation
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'1'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
'    '        Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'relative'    Name.Label
' '           Text
':'           Punctuation
' '           Text
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
'    '        Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
')'           Punctuation
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'2'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
'  '          Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'relative'    Name.Label
' '           Text
':'           Punctuation
' '           Text
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
'  '          Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
')'           Punctuation
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'3'           Literal.Number.Integer
':'           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'?'           Operator
' '           Text
'relative'    Name.Label
' '           Text
':'           Punctuation
' '           Text
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'?'           Operator
' '           Text
'offset'      Name.Label
' '           Text
':'           Punctuation
' '           Text
'none'        Name
')'           Punctuation
';'           Punctuation
' '           Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'buttons'     Name
'['           Punctuation
'id'          Name
']'           Punctuation
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
' '           Text
'none'        Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'vpw'         Name
','           Punctuation
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'int'         Keyword.Type
' '           Text
'x'           Name
','           Punctuation
'y'           Name
','           Punctuation
'w'           Name
','           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'Window'      Name
' '           Text
'parent'      Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'parent'      Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'// Fix Anchor\n' Comment.Single

'         '   Text
'x'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'position'    Name
'.'           Punctuation
'x'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'y'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'position'    Name
'.'           Punctuation
'y'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'w'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'h'           Name
' '           Text
'='           Operator
' '           Text
'control'     Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'clientSize'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'clientSize'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'control'     Name
'.'           Punctuation
'nonClient'   Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'            ' Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'size'        Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'('           Punctuation
'('           Punctuation
'BorderBits'  Name
')'           Punctuation
'control'     Name
'.'           Punctuation
'borderStyle' Name
')'           Punctuation
'.'           Punctuation
'fixed'       Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'control'     Name
'.'           Punctuation
'dontScrollHorz' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'w'           Name
')'           Punctuation
'  '          Text
'vpw'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'w'           Name
';'           Punctuation
'\n'          Text

'            ' Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'control'     Name
'.'           Punctuation
'dontScrollVert' Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'h'           Name
')'           Punctuation
' '           Text
'vph'         Name
' '           Text
'='           Operator
' '           Text
'parent'      Name
'.'           Punctuation
'scrollArea'  Name
'.'           Punctuation
'h'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'x'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'x'           Name
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'y'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'y'           Name
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'vpw'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'offset'      Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'vph'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single

'         '   Text
'else'        Keyword
' '           Text
'if'          Name.Function
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'//anchor.horz.type = anchor.horz.distance ? offset : none;\n' Comment.Single

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
' '           Text
'('           Punctuation
'('           Punctuation
'x'           Name
' '           Text
'+'           Operator
' '           Text
'w'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vpw'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vpw'         Name
';'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'!'           Operator
'anchor'      Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'!'           Operator
'anchor'      Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
')'           Punctuation
' \n         ' Text
'{'           Punctuation
'\n'          Text

'            ' Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'distance'    Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'//anchor.vert.type = anchor.vert.distance ? offset : none;\n' Comment.Single

'         '   Text
'}'           Punctuation
'\n'          Text

'         '   Text
'else'        Keyword
' '           Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'anchor'      Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'percent'     Name
' '           Text
'='           Operator
' '           Text
'('           Punctuation
'float'       Keyword.Type
')'           Punctuation
'('           Punctuation
'('           Punctuation
'y'           Name
' '           Text
'+'           Operator
' '           Text
'h'           Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'-'           Operator
' '           Text
'('           Punctuation
'vph'         Name
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'/'           Operator
' '           Text
'vph'         Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'tempString'  Name
'['           Punctuation
'1024'        Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'         '   Text
'bool'        Keyword.Type
' '           Text
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'needClass'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'anchorDropBox' Name
'.'           Punctuation
'contents'    Name
' '           Text
'='           Operator
' '           Text
'string'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'dropMaster'  Name
'.'           Punctuation
'SetData'     Name
'('           Punctuation
'&'           Operator
'anchor'      Name
','           Punctuation
' '           Text
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'anchorDropBox' Name
'.'           Punctuation
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
'\n'          Text

'\n'          Text

'private'     Keyword
' '           Text
'class'       Keyword
' '           Text
'AnchorEditor' Name.Label
' '           Text
':'           Punctuation
' '           Text
'Window'      Name
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'interim'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'borderStyle' Name
' '           Text
'='           Operator
' '           Text
'deepContour' Name
';'           Punctuation
'\n'          Text

'   '         Text
'size'        Name
'.'           Punctuation
'h'           Name
' '           Text
'='           Operator
' '           Text
'92'          Literal.Number.Integer
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'OnKeyDown'   Name.Function
'('           Punctuation
'Key'         Name
' '           Text
'key'         Name
','           Punctuation
' '           Text
'unichar'     Keyword.Type
' '           Text
'ch'          Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'key'         Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'escape'      Name
')'           Punctuation
'\n'          Text

'         '   Text
'return'      Keyword
' '           Text
'master'      Name
'.'           Punctuation
'OnKeyDown'   Name
'('           Punctuation
'key'         Name
','           Punctuation
' '           Text
'ch'          Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
'\n'          Text

'\n'          Text

'private'     Keyword
' '           Text
'class'       Keyword
' '           Text
'AnchorDropBox' Name.Label
' '           Text
':'           Punctuation
' '           Text
'DropBox'     Name
'\n'          Text

'{'           Punctuation
'\n'          Text

'   '         Text
'Anchor'      Name
' '           Text
'anchorValue' Name
';'           Punctuation
'\n'          Text

'   '         Text
'Window'      Name
' '           Text
'control'     Name
';'           Punctuation
'\n'          Text

'   '         Text
'Button'      Name
' '           Text
'relButtons'  Name
'['           Punctuation
'4'           Literal.Number.Integer
']'           Punctuation
','           Punctuation
' '           Text
'buttons'     Name
'['           Punctuation
'4'           Literal.Number.Integer
']'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'AnchorEditor' Name
' '           Text
'anchorEditor' Name
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'master'      Name
' '           Text
'='           Operator
' '           Text
'this'        Name.Builtin
';'           Punctuation
'\n'          Text

'      '      Text
'autoCreate'  Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'Window'      Name
' '           Text
'OnDropDown'  Name.Function
'('           Punctuation
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'int'         Keyword.Type
' '           Text
'c'           Name
';'           Punctuation
'\n'          Text

'      '      Text
'Button'      Name
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'anchorEditor' Name
','           Punctuation
'\n'          Text

'         '   Text
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'left'        Name
' '           Text
'='           Operator
' '           Text
'28'          Literal.Number.Integer
','           Punctuation
' '           Text
'top'         Name
' '           Text
'='           Operator
' '           Text
'28'          Literal.Number.Integer
','           Punctuation
' '           Text
'right'       Name
' '           Text
'='           Operator
' '           Text
'28'          Literal.Number.Integer
','           Punctuation
' '           Text
'bottom'      Name
' '           Text
'='           Operator
' '           Text
'28'          Literal.Number.Integer
' '           Text
'}'           Punctuation
','           Punctuation
'\n'          Text

'         '   Text
'inactive'    Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
','           Punctuation
' '           Text
'disabled'    Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
'\n'          Text

'      '      Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'for'         Keyword
'('           Punctuation
'c'           Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text
'c'           Name
'<'           Operator
'4'           Literal.Number.Integer
';'           Punctuation
' '           Text
'c'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'Button'      Name
' '           Text
'button'      Name
' '           Text
'='           Operator
' '           Text
'buttons'     Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'AnchorButton' Name
' \n         ' Text
'{'           Punctuation
' \n            ' Text
'anchorEditor' Name
','           Punctuation
' '           Text
'id'          Name
' '           Text
'='           Operator
' '           Text
'c'           Name
','           Punctuation
'\n'          Text

'            ' Text
'size'        Name
' '           Text
'='           Operator
' '           Text
'Size'        Name
' '           Text
'{'           Punctuation
' '           Text
'('           Punctuation
'c'           Name
'%'           Operator
'2'           Literal.Number.Integer
')'           Punctuation
'?'           Operator
'10'          Literal.Number.Integer
':'           Operator
'28'          Literal.Number.Integer
','           Punctuation
' '           Text
'('           Punctuation
'c'           Name
'%'           Operator
'2'           Literal.Number.Integer
')'           Punctuation
'?'           Operator
'28'          Literal.Number.Integer
':'           Operator
'10'          Literal.Number.Integer
' '           Text
'}'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'Button'      Name
' '           Text
'relButton'   Name
' '           Text
'='           Operator
' '           Text
'relButtons'  Name
'['           Punctuation
'c'           Name
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'AnchorRelButton' Name
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'anchorEditor' Name
','           Punctuation
' '           Text
'id'          Name
' '           Text
'='           Operator
' '           Text
'c'           Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'\n'          Text

'         '   Text
'switch'      Keyword
'('           Punctuation
'c'           Name
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'0'           Literal.Number.Integer
':'           Operator
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'left'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'relButton'   Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               \n               ' Text
'button'      Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'left'        Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'relButton'   Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'left'        Name
' '           Text
'='           Operator
' '           Text
'5'           Literal.Number.Integer
','           Punctuation
' '           Text
'vert'        Name
' '           Text
'='           Operator
' '           Text
'16'          Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'1'           Literal.Number.Integer
':'           Operator
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'top'         Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'relButton'   Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'\n'          Text

'               ' Text
'button'      Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'top'         Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'relButton'   Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'top'         Name
' '           Text
'='           Operator
' '           Text
'5'           Literal.Number.Integer
','           Punctuation
' '           Text
'horz'        Name
' '           Text
'='           Operator
' '           Text
'16'          Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'2'           Literal.Number.Integer
':'           Operator
' \n               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'right'       Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'horz'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'relButton'   Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               \n               ' Text
'button'      Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'right'       Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'relButton'   Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'right'       Name
' '           Text
'='           Operator
' '           Text
'5'           Literal.Number.Integer
','           Punctuation
' '           Text
'vert'        Name
' '           Text
'='           Operator
' '           Text
'16'          Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'            ' Text
'case'        Keyword
' '           Text
'3'           Literal.Number.Integer
':'           Operator
' \n               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'&'           Operator
'&'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'!'           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'button'      Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'               ' Text
'if'          Keyword
'('           Punctuation
'anchorValue' Name
'.'           Punctuation
'bottom'      Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'relative'    Name
' '           Text
'|'           Operator
'|'           Operator
' '           Text
'anchorValue' Name
'.'           Punctuation
'vert'        Name
'.'           Punctuation
'type'        Name
' '           Text
'='           Operator
'='           Operator
' '           Text
'middleRelative' Name
')'           Punctuation
' '           Text
'relButton'   Name
'.'           Punctuation
'checked'     Name
' '           Text
'='           Operator
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'\n'          Text

'               ' Text
'button'      Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'bottom'      Name
' '           Text
'='           Operator
' '           Text
'0'           Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'relButton'   Name
'.'           Punctuation
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'Anchor'      Name
' '           Text
'{'           Punctuation
' '           Text
'bottom'      Name
' '           Text
'='           Operator
' '           Text
'5'           Literal.Number.Integer
','           Punctuation
' '           Text
'horz'        Name
' '           Text
'='           Operator
' '           Text
'16'          Literal.Number.Integer
' '           Text
'}'           Punctuation
';'           Punctuation
'\n'          Text

'               ' Text
'break'       Keyword
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'anchorEditor' Name
'.'           Punctuation
'Create'      Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'anchorEditor' Name
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'      \n   ' Text
'void'        Keyword.Type
' '           Text
'OnCloseDropDown' Name.Function
'('           Punctuation
'Window'      Name
' '           Text
'anchorEditor' Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'// TOFIX: Patch for update bug\n' Comment.Single

'      '      Text
'master'      Name
'.'           Punctuation
'Update'      Name
'('           Punctuation
'null'        Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text

'      '      Text
'anchorEditor' Name
'.'           Punctuation
'Destroy'     Name
'('           Punctuation
'0'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'\n'          Text

'   '         Text
'bool'        Keyword.Type
' '           Text
'DataBox'     Name
':'           Operator
':'           Operator
'NotifyTextEntry' Name
'('           Punctuation
'AnchorDropBox' Name
' '           Text
'dropBox'     Name
','           Punctuation
' '           Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
','           Punctuation
' '           Text
'bool'        Keyword.Type
' '           Text
'save'        Name
')'           Punctuation
'\n'          Text

'   '         Text
'{'           Punctuation
'\n'          Text

'      '      Text
'Anchor'      Name
' '           Text
'anchor'      Name
' '           Text
'='           Operator
' '           Text
'dropBox'     Name
'.'           Punctuation
'anchorValue' Name
';'           Punctuation
'\n'          Text

'      '      Text
'Window'      Name
' '           Text
'control'     Name
' '           Text
'='           Operator
' '           Text
'dropBox'     Name
'.'           Punctuation
'control'     Name
';'           Punctuation
'\n'          Text

'\n'          Text

'      '      Text
'if'          Keyword
'('           Punctuation
'save'        Name
')'           Punctuation
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'if'          Keyword
'('           Punctuation
'anchor'      Name
'.'           Punctuation
'OnGetDataFromString' Name
'('           Punctuation
'string'      Name
')'           Punctuation
')'           Punctuation
'\n'          Text

'         '   Text
'{'           Punctuation
'\n'          Text

'            ' Text
'SetData'     Name
'('           Punctuation
'&'           Operator
'anchor'      Name
','           Punctuation
' '           Text
'false'       Name.Builtin
')'           Punctuation
';'           Punctuation
'\n'          Text

'            ' Text
'dropBox'     Name
'.'           Punctuation
'anchorValue' Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
';'           Punctuation
'\n'          Text

'         '   Text
'}'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'else'        Keyword
'\n'          Text

'      '      Text
'{'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'tempString'  Name
'['           Punctuation
'1024'        Literal.Number.Integer
']'           Punctuation
' '           Text
'='           Operator
' '           Text
'"'           Literal.String
'"'           Literal.String
';'           Punctuation
'\n'          Text

'         '   Text
'bool'        Keyword.Type
' '           Text
'needClass'   Name
' '           Text
'='           Operator
' '           Text
'false'       Name.Builtin
';'           Punctuation
'\n'          Text

'         '   Text
'char'        Keyword.Type
' '           Text
'*'           Operator
' '           Text
'string'      Name
' '           Text
'='           Operator
' '           Text
'anchor'      Name
'.'           Punctuation
'OnGetString' Name
'('           Punctuation
'tempString'  Name
','           Punctuation
' '           Text
'null'        Name.Builtin
','           Punctuation
' '           Text
'&'           Operator
'needClass'   Name
')'           Punctuation
';'           Punctuation
'\n'          Text

'         '   Text
'dropBox'     Name
'.'           Punctuation
'contents'    Name
' '           Text
'='           Operator
' '           Text
'string'      Name
';'           Punctuation
'\n'          Text

'      '      Text
'}'           Punctuation
'\n'          Text

'      '      Text
'return'      Keyword
' '           Text
'true'        Name.Builtin
';'           Punctuation
'\n'          Text

'   '         Text
'}'           Punctuation
'\n'          Text

'}'           Punctuation
'\n'          Text
