1.1.0 • Published 3 years ago
johannawirell_tokenizer v1.1.0
johannawirell_tokenizer
Tokenizerarens uppgift är att tolka en textsträng med hjälp av regulära uttryck och returnera vilka lexikala delar (tokens) som textsträngen består av.
Installering
$ npm i johannawirell_tokenizer
// ES6
import { Tokenizer } from 'johannawirell_tokenizer'
Användning
För att skapa ett objekt av klassen tokenizer krävs två argument
- Grammatik
const wordAndDotGrammar = {
WORD: /^[\w|åäöÅÄÖ]+/,
DOT: /^\./
}
Tips: använd grammtik från Grammar mappen
const wordAndDotGrammar = new WordAndDotGrammar().getRegexTypes()
- String
Detta är strängen som tokentyperna kommer hämtas från
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
getTokenTypes()
Denna metod hämtar alla tokentyper.
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.getTokens()
// Resultat
[
{ TokenType: 'WORD', TokenValue: 'test' },
{ TokenType: 'WORD', TokenValue: 'string' },
{ TokenType: 'DOT', TokenValue: '.' },
{ TokenType: 'END', TokenValue: '' }
]
getActiveToken()
Denna metod hämtar tokentypen för det aktiva tokenet
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.getActiveToken()
// Resultat
{ tokenType: 'WORD', tokenValue: 'test' }
setNextActiveToken()
Denna metod sätter tokentypen för det nästa aktiva tokenet
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken()
textTokenizer.getActiveToken()
// Resultat
{ tokenType: 'WORD', tokenValue: 'string' }
Ifall indexet är större än vad som finns i token-arrayen kastas undantag.
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken() // "string"
textTokenizer.setNextActiveToken() // "."
textTokenizer.setNextActiveToken() // END
textTokenizer.setNextActiveToken() // Unvalid index
textTokenizer.getActiveToken()
// Resultat
`Invalid index "4"`
setPreviousActiveToken()
Denna metod sätter tokentypen för det tidigare aktiva tokenet
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken() // Steg fram ("string")
textTokenizer.setPreviousActiveToken() // Steg tillbaka ("test")
// Resultat
{ tokenType: 'WORD', tokenValue: 'test' }
Ifall indexet är negativt kastas undantag.
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setPreviousActiveToken() // Unvalid index
textTokenizer.getActiveToken()
// Resultat
`Invalid index "-1"`
Invalid tokens
Ifall ett ogiltigt token skickas till tokenizern kommer tokens fram till detta token skapas.
const textTokenizer = new Tokenizer(wordAndDotGrammar, "Test!Detta skapas inte")
textTokenizer.getTokens()
// Resultat
[
{ TokenType: 'WORD', TokenValue: 'Test' },
{ TokenType: 'Exception', TokenValue: '!' }
]