public override void parseBlocks(string input) { DelimiterText = getInternalBlockText(DELIMITER, input); ParameterText = getInternalBlockText(PARAMETERS, input); CreationText = getInternalBlockText(TEXT, input); //Parse Delimiter Delimiter = new String[] { ProgramNode.loadString(DelimiterText) }; //Parse Parameter Text VarList = ParameterText.Split(ProgramNode.NEWLINE, StringSplitOptions.RemoveEmptyEntries).Select(x => ProgramNode.loadString(x)).ToList(); }
/// <summary> /// If the parameter text is of the form /// separator char, then entries, returns the number of parameters /// </summary> /// <returns></returns> protected List <string> Parameters() { var ans = new List <string>(); if (!string.IsNullOrEmpty(ParameterText)) { var sep = ParameterText[0]; var words = ParameterText.Split(new[] { sep }); ans.AddRange(words); } return(ans); }
public bool TryGetTextParameter(string name, out string value) { foreach (Parameter param in m_parameters) { if (param.m_name == name) { ParameterText pt = param as ParameterText; if (pt != null) { value = pt.m_text; return(true); } } } value = null; return(false); }
public bool TryGetTextParameters(string name, out string[] values) { List <string> foundValues = new List <string>(); foreach (Parameter param in m_parameters) { if (param.m_name == name) { ParameterText pt = param as ParameterText; if (pt != null) { foundValues.Add(pt.m_text); } } } values = foundValues.ToArray(); return(foundValues.Count > 0); }
private string EncodeParameterItem(Parameter item) { string data = ""; if (item is ParameterGroup) { if (m_mode == TransfluentMethodMode.GET) { Debug.LogError("TransfluentUtility: GET methods do not support POST parameter arrays!\nParameter group '" + item.m_name + "' was discarded"); } if (m_mode == TransfluentMethodMode.POST) { ParameterGroup group = item as ParameterGroup; for (int i = 0; i < group.m_parameters.Count; i++) { if (i > 0) { data += "&"; } data += EncodeParameterItem(group.m_parameters[i]); } } } if (item is ParameterValue) { ParameterValue value = item as ParameterValue; data += value.m_name + "=" + value.m_value; } if (item is ParameterText) { ParameterText text = item as ParameterText; data += text.m_name + "=" + WWW.EscapeURL(text.m_text); } return(data); }
public override void parseBlocks(string input) { DelimiterText = getInternalBlockText(DELIMITER, input); ParameterText = getInternalBlockText(PARAMETERS, input); ConditionalText = getInternalBlockText(CONDITIONALS, input); CreationText = getInternalBlockText(TEXT, input); //Parse Delimiter Delimiter = new String[] { ProgramNode.loadString(DelimiterText) }; //Parse Parameter Text VarList = ParameterText.Split(ProgramNode.NEWLINE, StringSplitOptions.RemoveEmptyEntries).Select(x => ProgramNode.loadString(x)).ToList(); var cSplit = ConditionalText.Split(ProgramNode.NEWLINE, StringSplitOptions.RemoveEmptyEntries).Select(x => ProgramNode.loadString(x)).ToList(); Conditionals = new List <Conditional>(); Conditional workingConditional = new Conditional(); foreach (String line in cSplit) { if (workingConditional.varName.Length == 0) { //Set the varname to the first line workingConditional.varName = line; continue; } else if (line.Contains(NEXT)) { //This is a NEXT Statement, to advance the variable Conditionals.Add(workingConditional); workingConditional = new Conditional(); continue; } else { //The format of the line: //VAR_LOOKUP | CONDITION | VAR_VALUE String[] cLineSplit = line.Split(ProgramNode.BAR, StringSplitOptions.RemoveEmptyEntries); if (cLineSplit.Length >= 2) { //Size 2 is allowed, because text can be blank if (VarList.Contains(cLineSplit[0])) { workingConditional.varLookups.Add(VarList.IndexOf(cLineSplit[0])); } else { //Attempt to parse this as an integer workingConditional.varLookups.Add(ProgramNode.loadInt(cLineSplit[0])); } //Attept to load condition Condition c = Condition.loadCondition(cLineSplit[1]); workingConditional.conditions.Add(c); String result = ""; if (cLineSplit.Length >= 3) { result = ProgramNode.loadString(cLineSplit[2]); } workingConditional.values.Add(result); } } } }