mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-11-03 15:26:12 -08:00 
			
		
		
		
	Proofing
This commit is contained in:
		
							
								
								
									
										46
									
								
								base/auxiliary/scanner.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								base/auxiliary/scanner.hpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
#ifdef GEN_INTELLISENSE_DIRECTIVES
 | 
			
		||||
#	pragma once
 | 
			
		||||
#	include "helpers/push_ignores.inline.hpp"
 | 
			
		||||
#	include "components/header_start.hpp"
 | 
			
		||||
#	include "components/types.hpp"
 | 
			
		||||
#	include "components/gen/ecode.hpp"
 | 
			
		||||
#	include "components/gen/eoperator.hpp"
 | 
			
		||||
#	include "components/gen/especifier.hpp"
 | 
			
		||||
#	include "components/ast.hpp"
 | 
			
		||||
#	include "components/code_types.hpp"
 | 
			
		||||
#	include "components/ast_types.hpp"
 | 
			
		||||
#	include "components/interface.hpp"
 | 
			
		||||
#	include "components/inlines.hpp"
 | 
			
		||||
#	include "components/gen/ast_inlines.hpp"
 | 
			
		||||
#	include "components/header_end.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#pragma region Scanner
 | 
			
		||||
 | 
			
		||||
// This is a simple file reader that reads the entire file into memory.
 | 
			
		||||
// It has an extra option to skip the first few lines for undesired includes.
 | 
			
		||||
// This is done so that includes can be kept in dependency and component files so that intellisense works.
 | 
			
		||||
Code scan_file( char const* path );
 | 
			
		||||
 | 
			
		||||
CodeBody parse_file( const char* path );
 | 
			
		||||
 | 
			
		||||
// The follow is basic support for light csv parsing (use it as an example)
 | 
			
		||||
// Make something robust if its more serious.
 | 
			
		||||
 | 
			
		||||
typedef struct CSV_Column CSV_Column;
 | 
			
		||||
struct CSV_Column {
 | 
			
		||||
	CSV_Object      ADT;
 | 
			
		||||
	Array(ADT_Node) Content;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct CSV_Columns2 CSV_Columns2;
 | 
			
		||||
struct CSV_Columns2 {
 | 
			
		||||
	CSV_Object      ADT;
 | 
			
		||||
	Array(ADT_Node) Col_1;
 | 
			
		||||
	Array(ADT_Node) Col_2;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CSV_Column parse_csv_one_column(AllocatorInfo allocator, char const* path);
 | 
			
		||||
CSV_Columns2 parse_csv_two_columns(AllocatorInfo allocator, char const* path);
 | 
			
		||||
 | 
			
		||||
#pragma endregion Scanner
 | 
			
		||||
		Reference in New Issue
	
	Block a user