import { Order } from 'blockly/javascript';
/**
* @category Texts
* @module AdvancedTexts
*/
/**
* Splits a string into an array of substrings based on a specified delimiter.
*
* @param {String} text - The text to split
* @param {String} delimiter - The delimiter
* @returns {String} - text.split(delimiter)
*/
function splitText(block, generator) {
const text = generator.valueToCode(block, 'TEXT', Order.NONE) || '';
const delimiter = generator.valueToCode(block, 'DELIMITER', Order.NONE) || '';
return [`${text}.split(${delimiter})`, Order.VOID];
}
/**
* Stems a word using the Porter Stemmer algorithm.
*
* @param {String} text - The text
* @returns {String} - PorterStemmer.stem(text)
*/
function stemText(block, generator) {
const text = generator.valueToCode(block, 'TEXT', Order.NONE) || '';
return [`PorterStemmer.stem(${text})`, Order.VOID];
}
/**
* Tokenizes a string into an array of words or symbols.
*
* @param {String} text - The text to tokenize
* @param {String} js_map - The javascript Map object
* @returns {String} - Tokenizer.tokenize(text, js_map)
*/
function tokenizeText(block, generator) {
const text = generator.valueToCode(block, 'TEXT', Order.NONE) || '';
const js_map = generator.valueToCode(block, 'JS_MAP', Order.NONE) || '';
return [`Tokenizer.tokenize(${text},${js_map})`, Order.VOID];
}
export const additionalTextBlockGenerator = {
text_split: splitText,
stem_text: stemText,
tokenize_text: tokenizeText,
};
//# sourceMappingURL=generators.js.map
Source