Example #1
0
 void Assoc_TypeRestriction(out DesignScript.Parser.Associative.TypeNode IDEType)
 {
     IDEType = new DesignScript.Parser.Associative.TypeNode();
     ExpectWeak(54, 11);
     if (t.val == ":") IDEType.colon.SetValue(t.val, t.line, t.col);
     if (StartOf(12)) {
     if (la.kind == 37) {
         Get();
     } else if (la.kind == 38) {
         Get();
     } else if (la.kind == 39) {
         Get();
     } else {
         Get();
     }
     IDEType.BuildInTypeSetValue(t.val, t.line, t.col);
     } else if (la.kind == 1) {
     Get();
     IDEType.UserDefinedTypeSetValue(t.val, t.line, t.col);
     } else SynErr(90);
     while (la.kind == 7) {
     string openBracket = null; string closeBracket = null;
     if (la.val == "[")  openBracket = la.val; int bracket_line = la.line; int bracket_col = la.col;
     Get();
     if (la.val == "]") closeBracket = la.val;
     Expect(8);
     if (openBracket != null && closeBracket != null) IDEType.AddBracket(openBracket, bracket_line, bracket_col, closeBracket, t.line, t.col);
     if (la.kind == 21) {
         Get();
         IDEType.op.SetValue(t.val, t.line, t.col);
         string multiDimOpenBracket = null; string multiDimCloseBracket = null;
         if (la.val == "[")  multiDimOpenBracket = la.val; int bracket2_line = la.line; int bracket2_col = la.col;
         Expect(7);
         if (la.val == "]")  multiDimCloseBracket = la.val;
         Expect(8);
         if (multiDimOpenBracket != null && multiDimCloseBracket != null)
         IDEType.AddMultiDimNodes(multiDimOpenBracket, bracket2_line, bracket2_col, multiDimCloseBracket, t.line, t.col);
     }
     }
 }