public virtual void Visit(TypeExp node) { AssignIsPartOfIteratorBody(node); this.SubexpressionTranslations.AddTrivialTranslation(node, string.Empty); // TODO: PSM2XPath: there should be some suport for types in the future //throw new ExpressionNotSupportedInXPath(node); }
public override OclExpression Visit(TypeExp node) { /* Types we can't handle yet */ isSuitable = false; notSupportedExpression = node; throw new OclConstructNotAvailableInPSM(node); }
public override bool Visit(TypeExp node) { /* Types we can't handle yet */ isSuitable = false; violatingExpression = node; return(false); }
public override string ToString() { StringBuilder buf = new StringBuilder(); buf.Append(TypeExp != null ? TypeExp.ToString() : ""); buf.Append(ArgExp != null ? ArgExp.ToString() : ""); return(buf.ToString()); }
Exp analyType(AnalyExpContext context) { IGcl gcl = context.StmtContext.MethodContext.ClassContext.SearchType(IdentName); if (gcl != null) { Type type = gcl.ForType; TypeExp exp = new TypeExp(this, IdentToken, type); return(exp); } return(null); }
Exp analyCurrentClass(AnalyExpContext context) { var IdentSymbol = symbols.Get(IdentName); if (IdentSymbol == null) { return(null); } if (IdentSymbol is InstanceSymbol) { VarExp exp = new VarExp(this, IdentToken, this.IsAssignedBy, this.IsAssignedValue); return(exp); } else if (IdentSymbol is SymbolDefClass) { TypeExp exp = new TypeExp(this, IdentToken, (IdentSymbol as SymbolDefClass)); return(exp); } else { throw new CompileException("类型非IVarSymbol、SymbolDefClass"); } }
public override void SetParent(Exp parentExp) { ParentExp = parentExp; TypeExp.SetParent(this); BracketExp.SetParent(this); }
public override string ToString() { return(TypeExp.ToString() + BracketExp.ToString()); }
public void Visit(TypeExp node) { }
public void Visit(TypeExp node) { sb.Append(node.ReferredType.Name); }
public void Visit(TypeExp node) { throw new NotImplementedException(); }
public abstract TType Visit(TypeExp node);
public override string ToString() { return(TypeExp.ToString() + ArgExp.ToString()); }