public TypeElement GetTypeElement(MdlFileContent file) { Object obj = new Object(); obj.Type = file.Next(); IValueFactory valueFactory = new ValueFactory(); if (file.Peek() != "\n") { obj.Name = file.Next(); if (file.Peek() != "\n") { obj.SecondName = file.Next(); } } file.Next(); while (file.Peek() != ")") { while (string.IsNullOrWhiteSpace(file.Peek())) { file.Next(); } Property property = new Property(); property.Name = file.Next(); property.Value = valueFactory.GetValue(file); obj.Properties.Add(property); } return(obj); }
public Value GetValue(MdlFileContent file) { TextVal textVal = new TextVal(); int bracketCount = 0; file.Next(); file.Next(); file.Next(); while (bracketCount > 0 || file.Peek() != ")") { if (file.Peek() == "(") { ++bracketCount; } else if (file.Peek() == ")") { --bracketCount; } textVal.Value += file.Next(); } file.Next(); return(textVal); }
public TypeElement GetTypeElement(MdlFileContent file) { IElementFactory elementFactory = new ElementFactory(); StateMachine.MdlReader.List list = new List(); list.Type = file.Next(); while (file.Peek() != ")") { list.Elements.Add(elementFactory.GetElement(file)); } return(list); }
public MDLFile Parse() { IElementFactory elementFactory = new ElementFactory(); MdlFileContent mdlFileContent = new MdlFileContent(path); MDLFile file = new MDLFile(); while (!mdlFileContent.EndOfFile) { if (string.IsNullOrWhiteSpace(mdlFileContent.Peek())) { mdlFileContent.Next(); continue; } file.Elements.Add(elementFactory.GetElement(mdlFileContent)); } return(file); }
public Element GetElement(MdlFileContent file) { IElementFactory elementFactory; while (!file.EndOfFile && string.IsNullOrWhiteSpace(file.Peek())) { file.Next(); } if (file.Content[file.Index] == "(" && regex.IsMatch(file.Content[file.Index + 1])) { elementFactory = new PositionFactory(); } else { elementFactory = new TypeElementFactory(); } return(elementFactory.GetElement(file)); }
public Value GetValue(MdlFileContent file) { int intResult; double doubleResult; bool boolResult; int index = file.Index; IValueFactory valueFactory; if (file.Content[index] == "(" && file.Content[index + 1].StartsWith("\"") && int.TryParse(file.Content[index + 2], out intResult) && file.Content[index + 3] == ")") { valueFactory = new EnumValFactory(); } else if (file.Content[index] == "(" && file.Content[index + 1] == "value" && file.Content[index + 2] == "Text") { valueFactory = new TextValFactory(); } else if (int.TryParse(file.Peek(), out intResult)) { valueFactory = new IntegerValFactory(); } else if (double.TryParse(file.Peek(), out doubleResult)) { valueFactory = new DoubleValFactory(); } else if (bool.TryParse(file.Peek(), out boolResult)) { valueFactory = new BooleanValFactory(); } else if (file.Peek().StartsWith("\"") || file.Peek().StartsWith("\n|")) { valueFactory = new StringValFactory(); } else if (file.Peek().StartsWith("@")) { valueFactory = new IdValFactory(); } else { valueFactory = new ElementValFacotory(); } return(valueFactory.GetValue(file)); }