public override Node ExitPlayerNameAttribute(Production node) { var values = GetChildValues(node); if(values.Count != 0) node.AddValue(new PlayerName() { Value = (string)values[0] }); return node; }
public override Node ExitExamples(Production node) { var table = GetChildValues(node).Cast<Table>().Single(); node.AddValue(table); return node; }
/** * <summary>Called when adding a child to a parse tree * node.</summary> * * <param name='node'>the parent node</param> * <param name='child'>the child node, or null</param> * * <exception cref='ParseException'>if the node analysis * discovered errors</exception> */ public override void Child(Production node, Node child) { switch (node.Id) { case (int) IrfConstants.IRF_DOCUMENT: ChildIrfDocument(node, child); break; case (int) IrfConstants.ROOT_NODE: ChildRootNode(node, child); break; case (int) IrfConstants.USER_NODE: ChildUserNode(node, child); break; case (int) IrfConstants.PLAYER_NOTE_NODE: ChildPlayerNoteNode(node, child); break; case (int) IrfConstants.PLAYER_NAME_ATTRIBUTE: ChildPlayerNameAttribute(node, child); break; case (int) IrfConstants.NOTE_TEXT_ATTRIBUTE: ChildNoteTextAttribute(node, child); break; case (int) IrfConstants.TIMESTAMP_ATTRIBUTE: ChildTimestampAttribute(node, child); break; case (int) IrfConstants.CLASSIFICATION_ATTRIBUTE: ChildClassificationAttribute(node, child); break; } }
public override Node ExitFeature(Production node) { var values = GetChildValues(node); var tags = (IEnumerable<string>) null; int summaryLinesIndex = 0; if (values[0] is IEnumerable<string>) { tags = values[0] as IEnumerable<string>; summaryLinesIndex++; } var summaryLines = values[summaryLinesIndex] as IList<LineValue>; var background = values[summaryLinesIndex + 1] as Background; var featureIndex = summaryLinesIndex + (background == null ? 1 : 2); // Rest of values are FeatureItems var items = values.GetRange(featureIndex, values.Count - featureIndex).Cast<FeatureItem>().ToList(); var feature = new Feature(summaryLines, background, items, tags) { // TODO: Should this get a value? Description = "" }; node.AddValue(feature); return node; }
public override Node ExitClassificationAttribute(Production node) { var values = GetChildValues(node); if (values.Count != 0) { Classification value = (Classification)int.Parse((string)values[0]); node.AddValue(value); } return node; }
public override Node ExitText(Production node) { Node child = null; for (int i = 0; i < node.GetChildCount(); i++) { child = node.GetChildAt(i); HTML = HTML + child.GetValue(0); //System.Console.WriteLine(); } return base.ExitText(node); }
/** * <summary>Called when adding a child to a parse tree * node.</summary> * * <param name='node'>the parent node</param> * <param name='child'>the child node, or null</param> * * <exception cref='ParseException'>if the node analysis * discovered errors</exception> */ public override void Child(Production node, Node child) { switch (node.Id) { case (int) CommandGrammarConstants.COMMANDS: ChildCommands(node, child); break; case (int) CommandGrammarConstants.COMMAND: ChildCommand(node, child); break; case (int) CommandGrammarConstants.EXPRESSION: ChildExpression(node, child); break; } }
public override Node ExitBackground(Production node) { var values = GetChildValues(node); // First value is either title from header or first FeatureStep var title = values[0] as string; var featureIndex = title == null ? 0 : 1; // Rest of values are FeatureSteps var steps = values.GetRange(featureIndex, values.Count - featureIndex).Cast<Step>().ToList(); var background = new Background(steps) { Title = title, LineNumber = node.StartLine }; node.AddValue(background); return node; }
public override Node ExitPlayerNoteNode(Production node) { var values = GetChildValues(node); if (values.Count != 0) { IrfNote note = new IrfNote(); note.PlayerName = (PlayerName)values[0]; for (int i = 1; i < values.Count; i++) { object value = values[i]; if (value is NoteText) note.NoteText = (NoteText)value; else if (value is DateTime) note.DateTime = (DateTime)value; else if (value is Classification) note.Classification = (Classification)value; } node.AddValue(note); } return node; }
public override Node ExitVoiceAction(Production node) { node.Values.AddRange(GetChildValues(node)); return node; }
public override Node ExitValue(Production node) { System.Collections.ArrayList values = GetChildValues (node); if (values.Count > 1) { //position=value string positionValue = ""; for (int i = 0; i < values.Count; i++) { positionValue += values [i]; } node.Values.Add (positionValue); } else { node.Values.AddRange(GetChildValues(node)); } /* Console.Write ("Value: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ return node; }
public override Node ExitOption(Production node) { node.Values.AddRange(GetChildValues(node)); //Option action Action optionAction = new Action (ScriptKeyword.OPTION, new Dictionary<string, string>(){ {ScriptKeyword.ID, node.Values[1].ToString()} }); actions.Add (optionAction); /* Console.Write ("Option: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ return node; }
public override Node ExitTableColumn(Production node) { var cell = GetChildValues(node).Cast<string>().Single().Trim(); var column = new Cell(cell); node.AddValue(column); return node; }
public override Node ExitStep(Production node) { var values = GetChildValues(node); if (values.Count > 0) { var kindWord = (string) values[0]; CurrentStepKind = LookupStepKind(kindWord); var stepBody = (string) values[1]; var table = (Table) null; if (values.Count > 2) table = (Table)values[3]; var step = new Step(table) { KindWord = kindWord, Kind = CurrentStepKind, Body = stepBody, LineNumber = node.StartLine }; node.AddValue(step); } return node; }
public override Node ExitTimestampAttribute(Production node) { var values = GetChildValues(node); if (values.Count != 0) { long seconds = long.Parse((string)values[0]); node.AddValue(TimestampHelper.GetDateTime(seconds)); } return node; }
public override Node ExitSummaryLine(Production node) { var text = GetChildValues(node).Cast<string>().SingleOrDefault(); if (!string.IsNullOrEmpty(text)) { var lineValue = new LineValue { Text = text.Trim(), LineNumber = node.StartLine }; node.AddValue(lineValue); } return node; }
public override Node ExitBackgroundHeader(Production node) { node.AddValue(GetTitle(node)); return node; }
public override Node ExitText(Production node) { var text = string.Concat(GetChildValues(node).Cast<string>().ToArray()); node.AddValue(text.Trim()); return node; }
public override Node ExitTags(Production node) { var tags = GetChildValues(node).Cast<string>().ToArray(); node.AddValue(tags); return node; }
public override Node ExitTableRow(Production node) { // Ignore whitespace and grab columms var columns = GetChildValues(node).Cast<object>().Where(o => o is Cell).Cast<Cell>().ToList(); var row = new Row(columns); node.AddValue(row); return node; }
public override void EnterExamplesHeader(Production node) { base.EnterExamplesHeader(node); }
public override void EnterBlock(Production node) { //Label this position for parameter on this focusAction actions.Add(emptyFocusAction); return; }
public override Node ExitAction(Production node) { node.Values.AddRange(GetChildValues(node)); if(node.Values.Count <= 1){ //detect >|>> to set the mode string mode = ""; if (node.Values [0].ToString ().Contains (ScriptKeyword.CLICK_NEXT_DIALOGUE_PAGE)) { mode = ScriptKeyword.CLICK_NEXT_DIALOGUE_PAGE; } else if(node.Values [0].ToString ().Contains (ScriptKeyword.CLICK)) { mode = ScriptKeyword.CLICK; } //remove >|>> from the content string content = node.Values [0].ToString (); content = content.Replace (ScriptKeyword.CLICK, string.Empty); //Text Action Action textAction = new Action (ScriptKeyword.TEXT, new Dictionary<string, string>(){ {ScriptKeyword.CONTENT, content}, {ScriptKeyword.MODE, mode} }); actions.Add (textAction); }else if(node.Values[0].Equals(ScriptKeyword.VOICE)){ //Voice Action Dictionary<string, string> parameters = new Dictionary<string, string>(); for(int i=0; i<(node.Values.Count - 2)/3 ;i++){ parameters.Add(node.Values[i*3+1].ToString(), node.Values[i*3+3].ToString()); } //detect >|>> to set the mode string mode = ""; if (node.Values[node.Values.Count-1].ToString().Contains (ScriptKeyword.CLICK_NEXT_DIALOGUE_PAGE)) { mode = ScriptKeyword.CLICK_NEXT_DIALOGUE_PAGE; } else if(node.Values[node.Values.Count-1].ToString().Contains (ScriptKeyword.CLICK)) { mode = ScriptKeyword.CLICK; } //remove >|>> from the content string content = node.Values[node.Values.Count-1].ToString(); content = content.Replace (ScriptKeyword.CLICK, string.Empty); parameters.Add (ScriptKeyword.CONTENT, content); parameters.Add (ScriptKeyword.MODE, mode); Action voiceAction = new Action (ScriptKeyword.VOICE, parameters); actions.Add (voiceAction); }else{ //Other Action Dictionary<string, string> parameters = new Dictionary<string, string>(); for(int i=0; i<(node.Values.Count - 2)/3 ;i++){ parameters.Add(node.Values[i*3+1].ToString(), node.Values[i*3+3].ToString()); } Action otherAction = new Action (node.Values[0].ToString(), parameters); actions.Add (otherAction); } /* Console.Write ("Action: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ //node.PrintTo (Console.Out); return node; }
public override Node ExitBlock(Production node) { node.Values.AddRange(GetChildValues(node)); /* Console.Write ("Block: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ Action focusAction = new Action (ScriptKeyword.FOCUS, new Dictionary<string, string>(){ {ScriptKeyword.ID, node.Values[0].ToString()} }); int index = actions.IndexOf (emptyFocusAction); actions [index] = focusAction; return node; }
public override Node ExitUserNode(Production node) { var values = GetChildValues(node); if (values.Count != 0) { IrfUserData userData = new IrfUserData(); userData.UserName = (string)values[0]; for (int i = 1; i < values.Count; i++) userData.Add((IrfNote)values[i]); node.AddValue(userData); } return node; }
public override Node ExitFlag(Production node) { node.Values.AddRange(GetChildValues(node)); //Flag action Dictionary<string, string> parameters = new Dictionary<string, string>(); int count = (node.Values.Count - 1) / 7; parameters.Add (ScriptKeyword.COUNT, ""+count); for(int i=0; i<count ;i++){ parameters.Add(ScriptKeyword.OPTION_+(i+1), node.Values[i*7+1].ToString()); parameters.Add(ScriptKeyword.OPTION_ID_+(i+1), node.Values[i*7+3].ToString()); parameters.Add(ScriptKeyword.OPTION_SRC_+(i+1), node.Values[i*7+5].ToString()); } Action flagAction = new Action (ScriptKeyword.FLAG, parameters); actions.Add (flagAction); /* Console.Write ("Flag: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ return node; }
public override Node ExitScenarioOutlineHeader(Production node) { node.AddValue(GetTitle(node)); return node; }
public override Node ExitJump(Production node) { node.Values.AddRange(GetChildValues(node)); //Jump action Action jumpAction = new Action (ScriptKeyword.JUMP, new Dictionary<string, string>(){ {ScriptKeyword.SRC, node.Values[1].ToString()} }); actions.Add (jumpAction); /* Console.Write ("Jump: "); for (int i = 0; i < node.Values.Count; i++) { Console.Write ("[" + i + "]" + node.Values[i] + " "); } Console.Write ("\n"); */ return node; }
public override Node ExitRootNode(Production node) { var values = GetChildValues(node); if (values.Count != 0) { irfObject = new IrfObject(); for (int i = 0; i < values.Count; i++) irfObject.Add((IrfUserData)values[i]); } return node; }
public override Node ExitTable(Production node) { var rows = GetChildValues(node).Cast<Row>().ToList(); var table = new Table(rows); node.AddValue(table); return node; }