public string getReadableString() { //return "phrase{}"; StringBuilder str = new StringBuilder(); str.Append(phraseClass.getReadableString()); str.Append(": "); for (int i = 0; i < pattern.Length; i++) { str.Append(pattern[i].getReadableString()); if (argNames != null && argNames[i] != null) { str.Append("["); str.Append(argNames[i].getReadableString()); str.Append("]"); } str.Append(" "); } if (pattern.Length > 0) { str.Append(" "); } // if (pattern.Length > 0) // str.Remove(str.Length - 1, 1); str.Append("-> "); str.Append(getValueDescriptionString()); return(str.ToString()); }
// Read a text expression and reduce it to a string // textStart = opening "", textEnd = object after closing "" public string parseTextExpressionIntoString(PNode textStart, PNode textEnd) { StringBuilder str = new StringBuilder(); int prevObjSpaceRequest = 0; int thisObjSpaceRequest = 0; for (PNode node = textStart.next; node != null && node.next != textEnd; node = node.next) { ProseObject obj = node.value; // WARNING: MUST COME FIRST BECAUSE IT MAY CHANGE THE VALUE OF node // Left square bracket opens an inline prose expression that must be evaluated if (obj == LeftSquareBracket) { bool didReduce; node = reduceParentheticalExpression(node, out didReduce, LeftSquareBracket, RightSquareBracket); obj = node.value; } // String literals substitute their contents directly if (obj is StringLiteralObject) { str.Append(((StringLiteralObject)obj).literal); thisObjSpaceRequest = -1; } else { if (prevObjSpaceRequest != -1) { str.Append(" "); } str.Append(obj.getReadableString()); thisObjSpaceRequest = 1; } // if (prevObjSpaceRequest != -1 && thisObjSpaceRequest != -1) // str.Append(" "); // Update prevObjSpaceRequest = thisObjSpaceRequest; } if (str[str.Length - 1] == ' ') { str.Remove(str.Length - 1, 1); } return(str.ToString()); }
public string getValueDescriptionString() { // If the value hasn't been determined, look up a static description instead. if (value == null) { return(getStaticValueDescriptionString()); } StringBuilder str = new StringBuilder(); for (int i = 0; i < value.Length; i++) { if (value[i] is ArgRefObject) { int argIdx = ((ArgRefObject)value[i]).reffedArgIndex; ProseObject argName = argNames[argIdx]; if (argName != null) { str.Append(argName.getReadableString()); } else { str.Append(pattern[argIdx].getReadableString()); } } else { str.Append(value[i].getReadableString()); } str.Append(" "); } if (value.Length > 0) { str.Remove(str.Length - 1, 1); } return(str.ToString()); }
public string getReadableString() { StringBuilder s = new StringBuilder(40); for (int i = 0; i < patternElements.Count; i++) { s.Append(patternElements[i].getReadableString()); ProseObject eltName = elementNames[i]; if (eltName != null) { s.Append("["); s.Append(eltName.getReadableString()); s.Append("]"); } s.Append(" "); } // Throw out the extra space at the end if (patternElements.Count > 0) { s.Remove(s.Length - 1, 1); } return(s.ToString()); }
public string getReadableString() { return("LoadAndBindAssembly{\"" + dllName + "\" <- " + rawWord.getReadableString() + "}"); }