mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-02 19:36:12 +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);
 | 
						|
    }
 | 
						|
}
 |