예제 #1
0
		public override void visit(named_type_reference _named_type_reference)
		{
			//throw new NotImplementedException();
			 returned_scope = entry_scope;
           	 for (int i=0; i<_named_type_reference.names.Count; i++)
           	 {
           	 	returned_scope = returned_scope.FindName(_named_type_reference.names[i].name);
           	 	if (returned_scope == null) 
           	 		return;
           	 }
		}
예제 #2
0
 public FileScope(TypeScope elementType, SymScope topScope)
 {
     this.topScope = topScope;
     if (topScope != null)
     {
         if (elementType != null)
             this.baseScope = topScope.FindName("TypedFile") as TypeScope;
         else
             this.baseScope = topScope.FindName("BinaryFile") as TypeScope;
     }
     this.elementType = elementType;
     this.si = new SymInfo(this.ToString(), SymbolKind.Type, this.ToString());
 }
예제 #3
0
		public override void visit(template_type_reference _template_type_reference)
		{
			 returned_scope = entry_scope;
           	 for (int i=0; i<_template_type_reference.name.names.Count; i++)
           	 {
           	 	returned_scope = returned_scope.FindName(_template_type_reference.name.names[i].name);
           	 	if (returned_scope == null) 
           	 		return;
           	 }
           	 if (returned_scope is TypeScope)
           	 {
           	 	TypeScope ts = returned_scope as TypeScope;
           	 	List<TypeScope> gen_args = new List<TypeScope>();
           	 	foreach (type_definition td in _template_type_reference.params_list.params_list)
           	 	{
           	 		td.visit(this);
           	 		gen_args.Add(returned_scope as TypeScope);
           	 	}
           	 	returned_scope = ts.GetInstance(gen_args);
           	 }
           	 else
           	 	returned_scope = null;
		}