public string GetCode(Queue <ExpressionItem> queitem) { StringBuilder sbOut = new StringBuilder(); while (queitem.Count > 0) { ExpressionItem item = queitem.Dequeue(); switch (item.Type) { case ExpressionType.String: FilterCode(item.Content); sbOut.Append(" SystemOut.Append(\"" + item.Content.ToString() + "\");\n"); break; case ExpressionType.Code: sbOut.Append(" " + item.Content.ToString() + "\n"); break; case ExpressionType.Express: sbOut.Append(" SystemOut.Append(" + item.Content.ToString() + ");\n"); break; default: break; } } return(sbOut.ToString()); }
/// <summary> /// 处理代码块 /// </summary> private void CompilerPart() { while (MoveNext()) { if (CurrentChar == ScriptChar) { _currentItem = new ExpressionItem(); _queitem.Enqueue(_currentItem); if (MoveNext()) { if (CurrentChar == '=') { _currentItem.Type = ExpressionType.Express; } else { _currentItem.Type = ExpressionType.Code; _currentItem.Content.Append(CurrentChar); } CompilerCode(); _currentItem = null; } break; } else if (CurrentChar == '<') { if (_currentItem == null) { _currentItem = new ExpressionItem(); _currentItem.Type = ExpressionType.String; _queitem.Enqueue(_currentItem); } _currentItem.Content.Append("<"); CompilerPart(); break; } else { if (_currentItem == null) { _currentItem = new ExpressionItem(); _currentItem.Type = ExpressionType.String; _queitem.Enqueue(_currentItem); } _currentItem.Content.Append("<" + CurrentChar); break; } } }
public string GetCode(Queue <ExpressionItem> queitem) { StringBuilder sbOut = new StringBuilder(); while (queitem.Count > 0) { ExpressionItem item = queitem.Dequeue(); switch (item.Type) { case ExpressionType.String: sbOut.Append(item.Content.ToString()); break; default: break; } } return(sbOut.ToString()); }
private void DoCompiler() { _currentItem = new ExpressionItem(); _currentItem.Type = ExpressionType.String; _queitem.Enqueue(_currentItem); while (MoveNext()) { if (CurrentChar == '<') { CompilerPart(); } else { if (_currentItem == null) { _currentItem = new ExpressionItem(); _currentItem.Type = ExpressionType.String; _queitem.Enqueue(_currentItem); } _currentItem.Content.Append(CurrentChar); } } }
///// <summary> ///// 过滤连接dll信息 ///// </summary> ///// <param name="items"></param> ///// <returns></returns> //private string[] LinkFilter(string items) //{ //} /// <summary> /// 获取代码 /// </summary> /// <param name="queitem"></param> /// <param name="modelPath">模块路径</param> /// <returns></returns> public List <string> GetCode(Queue <ExpressionItem> queitem, EntityInfo entityInfo) { List <string> lst = new List <string>(); while (queitem.Count > 0) { ExpressionItem item = queitem.Dequeue(); switch (item.Type) { case ExpressionType.String: lst.AddRange(item.Content.ToString().Split('\n')); for (int i = 0; i < lst.Count; i++) { lst[i] = UIConfigItem.FormatParameter(lst[i], entityInfo, entityInfo.DesignerInfo.CurrentProject); } break; default: break; } } return(lst); }