48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# CppParser
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```c#
							 | 
						||
| 
								 | 
							
								if (skipProcessing && false)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    compilation.Diagnostics.Warning($"Compilation aborted due to one or more errors listed above.", new CppSourceLocation(rootFileName, 0, 1, 1));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    translationUnit.Cursor.VisitChildren(builder.VisitTranslationUnit, clientData: default);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# CppModelBuilder
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```c#
							 | 
						||
| 
								 | 
							
								//Debug.WriteLine($"[Warning]template argument in class:{cppClass.FullName} with type: {arg.kind} do not handle right now!");
							 | 
						||
| 
								 | 
							
								cppClass.TemplateSpecializedArguments.Add(new CppTemplateArgument(tempParams[(int)i], arg.ToString()));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//WarningUnhandled(cursor, parent);
							 | 
						||
| 
								 | 
							
								break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (!string.IsNullOrEmpty(errorMessage))
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    var element = (CppElement)attrContainer;
							 | 
						||
| 
								 | 
							
								    //throw new Exception($"handle meta not right, detail: `{errorMessage}, location: `{element.Span}`");
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								AppendToMetaAttributes(attrContainer.MetaAttributes.MetaList, metaAttr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// TODO: this is not yet supported
							 | 
						||
| 
								 | 
							
								//RootCompilation.Diagnostics.Warning($"Dependent sized arrays `{CXUtil.GetTypeSpelling(type)}` from `{CXUtil.GetCursorSpelling(parent)}` is not supported", GetSourceLocation(parent.Location));
							 | 
						||
| 
								 | 
							
								var elementType = GetCppType(type.ArrayElementType.Declaration, type.ArrayElementType, parent, data);
							 | 
						||
| 
								 | 
							
								return new CppArrayType(elementType, (int)type.ArraySize);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//WarningUnhandled(cursor, parent, type);
							 | 
						||
| 
								 | 
							
								return new CppUnexposedType(CXUtil.GetTypeSpelling(type)) { SizeOf = (int)type.SizeOf };
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 |