コード例 #1
0
 public abstract Template Visit(RefType type);
コード例 #2
0
ファイル: TargetCpp.cs プロジェクト: Connect2Begin/SugarCpp
 public override Template Visit(RefType type)
 {
     Template template = new Template("<type>&");
     template.Add("type", type.Type.Accept(this));
     return template;
 }
コード例 #3
0
ファイル: SugarWalker.cs プロジェクト: Connect2Begin/SugarCpp
	private SugarType type_ref()
	{
		EnterRule_type_ref();
		EnterRule("type_ref", 18);
		TraceIn("type_ref", 18);
		SugarType value = default(SugarType);


		SugarType a = default(SugarType);

		try { DebugEnterRule(GrammarFileName, "type_ref");
		DebugLocation(237, 1);
		try
		{
			// SugarWalker.g:238:2: ( ^( Type_Ref a= type_name ) )
			DebugEnterAlt(1);
			// SugarWalker.g:238:4: ^( Type_Ref a= type_name )
			{
			DebugLocation(238, 4);
			DebugLocation(238, 6);
			Match(input,Type_Ref,Follow._Type_Ref_in_type_ref988); 

			Match(input, TokenTypes.Down, null); 
			DebugLocation(238, 16);
			PushFollow(Follow._type_name_in_type_ref992);
			a=type_name();
			PopFollow();


			Match(input, TokenTypes.Up, null); 

			DebugLocation(239, 2);

					value = new RefType(a);
				

			}

		}
		catch (RecognitionException re)
		{
			ReportError(re);
			Recover(input,re);
		}
		finally
		{
			TraceOut("type_ref", 18);
			LeaveRule("type_ref", 18);
			LeaveRule_type_ref();
		}
		DebugLocation(242, 1);
		} finally { DebugExitRule(GrammarFileName, "type_ref"); }
		return value;

	}