mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								import lex from "./apps/server/dist/services/search/services/lex.js";
							 | 
						||
| 
								 | 
							
								import parse from "./apps/server/dist/services/search/services/parse.js";
							 | 
						||
| 
								 | 
							
								import SearchContext from "./apps/server/dist/services/search/search_context.js";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Test the integration of the lexer and parser
							 | 
						||
| 
								 | 
							
								const testCases = [
							 | 
						||
| 
								 | 
							
								    "=example",
							 | 
						||
| 
								 | 
							
								    "example",
							 | 
						||
| 
								 | 
							
								    "=hello world"
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for (const query of testCases) {
							 | 
						||
| 
								 | 
							
								    console.log(`\n=== Testing: "${query}" ===`);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    const lexResult = lex(query);
							 | 
						||
| 
								 | 
							
								    console.log("Lex result:");
							 | 
						||
| 
								 | 
							
								    console.log("  Fulltext tokens:", lexResult.fulltextTokens.map(t => t.token));
							 | 
						||
| 
								 | 
							
								    console.log("  Leading operator:", lexResult.leadingOperator || "(none)");
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    const searchContext = new SearchContext.default({ fastSearch: false });
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    try {
							 | 
						||
| 
								 | 
							
								        const expression = parse.default({
							 | 
						||
| 
								 | 
							
								            fulltextTokens: lexResult.fulltextTokens,
							 | 
						||
| 
								 | 
							
								            expressionTokens: [],
							 | 
						||
| 
								 | 
							
								            searchContext,
							 | 
						||
| 
								 | 
							
								            originalQuery: query,
							 | 
						||
| 
								 | 
							
								            leadingOperator: lexResult.leadingOperator
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        console.log("Parse result: Success");
							 | 
						||
| 
								 | 
							
								        console.log("  Expression type:", expression.constructor.name);
							 | 
						||
| 
								 | 
							
								    } catch (e) {
							 | 
						||
| 
								 | 
							
								        console.log("Parse result: Error -", e.message);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |