27 lines
853 B
Plaintext
27 lines
853 B
Plaintext
FUNCTION bCAN_MAKE_WORD(zWord: STRING): BOOLEAN
|
|
VAR sBlockCount: SHORT
|
|
VAR sWordCount: SHORT
|
|
VAR sWordLength: SHORT
|
|
VAR zLetter: STRING
|
|
VAR zBlock: STRING
|
|
VAR zBlockList: STRING
|
|
VAR zUsedBlocks: STRING
|
|
VAR zWord: STRING
|
|
//
|
|
SET zWord = UPPER(zWord)
|
|
SET zBlockList = "BO,XK,DQ,CP,NA,GT,RE,TG,QD,FS,JW,HU,VI,AN,OB,ER,FS,LY,PC,ZM"
|
|
SET sWordLength = LENGTH(zWord)
|
|
//
|
|
DO sWordCount = 1 TO sWordLength
|
|
DO sBlockCount = 1 TO OCCURS(zBlockList, ",")
|
|
SET zLetter = SUBSTR(zWord, sWordCount, 1)
|
|
SET zBlock = GET_TOKEN(zBlockList, ",", sBlockCount)
|
|
IF INDEX(zBlock, zLetter, 1) > 0 AND INDEX(zUsedBlocks, zBlock + STR(sBlockCount), 1) = 0
|
|
SET zUsedBlocks = zUsedBlocks + zBlock + STR(sBlockCount) + ","
|
|
BREAK
|
|
ENDIF
|
|
ENDDO
|
|
ENDDO
|
|
RETURN OCCURS(zUsedBlocks, ",") = sWordLength
|
|
ENDFUNCTION
|