private void onInInterfaceBody(char c) { if (c == '/') { Data.Back(1); var comment = commentParser.Parse(); result.AddComment(comment); } else if (c == 'f' || c == 'b' || c == 'r') { Data.Back(1); var attr = attributeParser.Parse(); result.AddAttribute(attr); } else if (c == '}') { state = FINAL; } else if (ParserUtil.IsNewLineOrWhitespace(c) && ParserUtil.NextNonWhitespaceIs(Data, '/')) { var comment = commentParser.Parse("" + c); result.AddComment(comment); } else if (ParserUtil.IsNewLineOrWhitespace(c) && ParserUtil.NextNonWhitespaceIs(Data, '}')) { state = BEFORE_FINAL; } else if (ParserUtil.IsNewLineOrWhitespace(c)) { var attr = attributeParser.Parse("" + c); result.AddAttribute(attr); } }
private void onInToken(char c) { if (c == '/' || c == '*' || ParserUtil.IsValidNameChar(c)) { buf += c; } else if (ParserUtil.IsNewLineOrWhitespace(c) && buf.Length > 0) { Data.Back(buf.Length + 1); if (buf.Equals("interface")) { var ifa = interfaceParser.Parse(whitespaceBuf); result.AddInterface(ifa); whitespaceBuf = ""; } else if (buf.Equals("config")) { if (result.Config != null) { throw new InvalidTokenException("Es wurde eine zweite config-Section in einer CEUSDL-Datei gefunden", Data); } result.Config = configParser.Parse(whitespaceBuf); result.Objects.Add(new TmpMainLevelObject(result.Config)); whitespaceBuf = ""; } else if (buf.Equals("import")) { var import = importParser.Parse(whitespaceBuf); result.Objects.Add(new TmpMainLevelObject(import)); whitespaceBuf = ""; } else if (buf.StartsWith("//") || buf.StartsWith("/*")) { var comment = commentParser.Parse(whitespaceBuf); result.AddComment(comment); whitespaceBuf = ""; } else { throw new InvalidTokenException($"Ungültiges Schlüsselwort {buf} gefunden", Data); } state = INITIAL; buf = ""; } }
private void onInParamList(char c) { while (c == '/' || ParserUtil.NextNonWhitespaceIs(Data, '/')) { if (c == '/') { Data.Back(1); } commentParser.Parse(); c = ' '; } var p = this.namedParameterParser.Parse(); if (p != null) { this.result.Parameters.Add(p); } Data.Back(1); state = BEHIND_PARAM; }