Добавлены свойства классов массивами
Этот коммит содержится в:
		
							родитель
							
								
									6113b6be28
								
							
						
					
					
						коммит
						1d39dfa762
					
				
					 2 изменённых файлов: 16 добавлений и 0 удалений
				
			
		|  | @ -92,6 +92,7 @@ package test | |||
| type device struct { | ||||
|   a,b int | ||||
|   c,d,e string | ||||
|   g [GPIO_count]bool | ||||
| } | ||||
| ``` | ||||
|     * Результат: | ||||
|  | @ -100,6 +101,7 @@ class device { | |||
| public: | ||||
|   int a,b; | ||||
|   std::string c,d,e; | ||||
|   bool g[GPIO_count]; | ||||
| }; | ||||
| ``` | ||||
| 
 | ||||
|  |  | |||
|  | @ -30,6 +30,12 @@ func optionallyAddArrayDetails(s *ast.TypeSpec) (code string) { | |||
| 	code += "]" | ||||
| 	return | ||||
| } | ||||
| func optionallyAddArrayDetailsArrayType(a *ast.ArrayType) (code string) { | ||||
| 	code += "[" | ||||
| 	code += handleArrayLen(a) | ||||
| 	code += "]" | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func handleArrayLen(a *ast.ArrayType) (code string) { | ||||
| 	return handleExpr(a.Len) | ||||
|  | @ -59,6 +65,8 @@ func handleField(f *ast.Field) (code string) { | |||
| 		code += handleIdentExpr(t) | ||||
| 	case *ast.FuncType: | ||||
| 		code += handleFuncDeclType(t) | ||||
| 	case *ast.ArrayType: | ||||
| 		code += handleArray(t) | ||||
| 	} | ||||
| 
 | ||||
| 	code += " " | ||||
|  | @ -70,6 +78,12 @@ func handleField(f *ast.Field) (code string) { | |||
| 		code += handleIdentExpr(n) | ||||
| 		nado_zapyatuyu = true | ||||
| 	} | ||||
| 
 | ||||
| 	switch t := f.Type.(type) { | ||||
| 	case *ast.ArrayType: | ||||
| 		code += optionallyAddArrayDetailsArrayType(t) | ||||
| 	} | ||||
| 
 | ||||
| 	code += ";\n" | ||||
| 	return | ||||
| } | ||||
|  |  | |||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 Softonik
						Softonik