public static void parseVariable(ObservableCollection <Block> variables, EditorDragDropTarget page) { ReadOnlyObservableCollection <Block> list = page.getTreeList(); indent(true); foreach (Block b in variables) { string s = ""; foreach (String str in indentCount) { s = s + str; } s = s + "vardecl"; foreach (string str in b.metadataList) { //catching caps in var declaration and setting them to lowercase if (str.Contains("INT") || str.Contains("BOOL") || str.Contains("STRING")) { s += " " + str.ToLower(); } else { s = s + " " + str; } } s = s + ";"; if (SocketReader.checkCustoms(list, b) > 0) { writeToFile(s); } } }
private static void addEditors(XElement editors) { IEnumerable <XElement> editor = editors.Elements(); foreach (var midnight in editor) //time of great programming { string editorName = midnight.Attribute("name").Value.ToString(); EditorDragDropTarget EDDT = null; //get a refrence to the EDDT for the current midnight (redundant) foreach (EditorDragDropTarget target in MainPage.editorLists) //ask team to find a better way to do this { if (target.Name.Equals(editorName)) { //Debug.WriteLine(target.Name); EDDT = MainPage.editorLists[MainPage.editorLists.IndexOf(target)]; break; } } addBlocks(midnight, EDDT); methodIndex++; } }
private static void addBlocks(XElement editor, EditorDragDropTarget EDDT) { IEnumerable <XElement> blocks = editor.Elements(); foreach (var block in blocks) { int blockID = blockLookUp[block.Attribute("type").Value]; string blockName = block.Attribute("type").Value; int line = Int32.Parse(block.Element("LINE").Value); Debug.WriteLine(blockName + " ID: " + blockID + " Line: " + line); if (!blockName.Contains("END")) { Block copyBlock = MainPage.createProgramStructureBlock(blockID); Block endBlock = null; //currently adding so that program doesn't break. //need to add correct block in this case methods by name. if (copyBlock == null) { switch (blockName) { case "METHOD": foreach (Block b in MainPage.methodList) //find method block { if (b.metadataList[1].Equals(block.Element("name").Value)) { copyBlock = b.cloneSelf(true); break; } } break; case "RETURN": TabPage methodCode = (TabPage)MainPage.tabList[methodIndex - 1].Content; //MainPage.methodList.IndexOf(b) copyBlock = methodCode.getReturnBlock(); if (copyBlock == null) { copyBlock = MainPage.createReservedBlock(blockName); } break; default: copyBlock = MainPage.createReservedBlock(blockName); break; } } //create end blocks for those who neeed it if (blockName.Contains("IF")) { endBlock = MainPage.createReservedBlock("ENDIF"); } else if (blockName.Equals("ELSE")) { endBlock = MainPage.createReservedBlock("ENDELSE"); } else if (copyBlock.flag_requiresEndLoop) { endBlock = MainPage.createReservedBlock("ENDLOOP"); } //add block and call sockets to be added if (endBlock == null) { EDDT.addNodeToTree(copyBlock, line); } else { EDDT.addNodeToTree(copyBlock, endBlock, line); } //List<int> socketPosition = SocketReader.socketFinder(copyBlock); //foreach (int socket in socketPosition) //{ // Debug.WriteLine("socket location: " + socket); getSocket(block, copyBlock); //} } } EDDT.setTree(EDDT.Content as ListBox); }
public static void parseVariable(ObservableCollection<Block> variables, EditorDragDropTarget page) { ReadOnlyObservableCollection<Block> list = page.getTreeList(); indent(true); foreach (Block b in variables) { string s = ""; foreach (String str in indentCount) s = s + str; s = s + "vardecl"; foreach (string str in b.metadataList) { //catching caps in var declaration and setting them to lowercase if (str.Contains("INT") || str.Contains("BOOL") || str.Contains("STRING")) { s += " " + str.ToLower(); } else { s = s + " " + str; } } s = s + ";"; if (SocketReader.checkCustoms(list, b) > 0) { writeToFile(s); } } }
public static void parseCode(EditorDragDropTarget page) { ReadOnlyObservableCollection<Block> list = page.getTreeList(); foreach (Block b in list) { string s = ""; if (b.flag_endIndent) { indent(false); foreach (String str in indentCount) s = s + str; s += "}"; writeToFile(s); } else { foreach (String str in indentCount) s = s + str; //checks to see if the block should use name or contents to print into code if(b.flag_printLiteral) { s += (b.ToString()).ToLower() + SocketReader.readSocket(b); //s = s.ToLower(); } else if (b.flag_robotOnly) { s += SocketReader.translateRobotFunctions(b) + ";"; } else if (b.flag_isCustom && b.flag_transformer) { s += (b.metadataList[0]).ToLower() + " " + b.metadataList[1]; s += SocketReader.readSocket(b); if (s[s.Length - 1] != ')') { s += " ()"; } s += ";"; } else { s += (b.metadataList[0]).ToLower(); s += SocketReader.readSocket(b); } if (b.metadataList[0].Equals("ASSIGN") || b.metadataList[0].Equals("WAIT UNTIL") || b.metadataList[0].Equals("RETURN")) { s += ";"; } writeToFile(s); if (b.flag_beginIndent) { s = ""; foreach (String str in indentCount) s = s + str; s += "{"; writeToFile(s); indent(true); } } } indent(false); }
public static void parseCode(EditorDragDropTarget page) { ReadOnlyObservableCollection <Block> list = page.getTreeList(); foreach (Block b in list) { string s = ""; if (b.flag_endIndent) { indent(false); foreach (String str in indentCount) { s = s + str; } s += "}"; writeToFile(s); } else { foreach (String str in indentCount) { s = s + str; } //checks to see if the block should use name or contents to print into code if (b.flag_printLiteral) { s += (b.ToString()).ToLower() + SocketReader.readSocket(b); //s = s.ToLower(); } else if (b.flag_robotOnly) { s += SocketReader.translateRobotFunctions(b) + ";"; } else if (b.flag_isCustom && b.flag_transformer) { s += (b.metadataList[0]).ToLower() + " " + b.metadataList[1]; s += SocketReader.readSocket(b); if (s[s.Length - 1] != ')') { s += " ()"; } s += ";"; } else { s += (b.metadataList[0]).ToLower(); s += SocketReader.readSocket(b); } if (b.metadataList[0].Equals("ASSIGN") || b.metadataList[0].Equals("WAIT UNTIL") || b.metadataList[0].Equals("RETURN")) { s += ";"; } writeToFile(s); if (b.flag_beginIndent) { s = ""; foreach (String str in indentCount) { s = s + str; } s += "{"; writeToFile(s); indent(true); } } } indent(false); }
private static void addBlocks(XElement editor, EditorDragDropTarget EDDT) { IEnumerable<XElement> blocks = editor.Elements(); foreach (var block in blocks) { int blockID = blockLookUp[block.Attribute("type").Value]; string blockName = block.Attribute("type").Value; int line = Int32.Parse(block.Element("LINE").Value); Debug.WriteLine(blockName + " ID: " + blockID + " Line: " + line); if (!blockName.Contains("END")) { Block copyBlock = MainPage.createProgramStructureBlock(blockID); Block endBlock = null; //currently adding so that program doesn't break. //need to add correct block in this case methods by name. if (copyBlock == null) { switch (blockName) { case "METHOD": foreach (Block b in MainPage.methodList) //find method block { if (b.metadataList[1].Equals(block.Element("name").Value)) { copyBlock = b.cloneSelf(true); break; } } break; case "RETURN": TabPage methodCode = (TabPage)MainPage.tabList[methodIndex-1].Content; //MainPage.methodList.IndexOf(b) copyBlock = methodCode.getReturnBlock(); if(copyBlock == null) copyBlock = MainPage.createReservedBlock(blockName); break; default: copyBlock = MainPage.createReservedBlock(blockName); break; } } //create end blocks for those who neeed it if (blockName.Contains("IF")) { endBlock = MainPage.createReservedBlock("ENDIF"); } else if (blockName.Equals("ELSE")) { endBlock = MainPage.createReservedBlock("ENDELSE"); } else if (copyBlock.flag_requiresEndLoop) { endBlock = MainPage.createReservedBlock("ENDLOOP"); } //add block and call sockets to be added if (endBlock == null) { EDDT.addNodeToTree(copyBlock, line); } else { EDDT.addNodeToTree(copyBlock, endBlock, line); } //List<int> socketPosition = SocketReader.socketFinder(copyBlock); //foreach (int socket in socketPosition) //{ // Debug.WriteLine("socket location: " + socket); getSocket(block, copyBlock); //} } } EDDT.setTree(EDDT.Content as ListBox); }