[ [ ( KeywordTok , "object" ) , ( NormalTok , " AbcBlocks " ) , ( KeywordTok , "extends" ) , ( NormalTok , " App " ) , ( OperatorTok , "{" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "protected" ) , ( NormalTok , " " ) , ( KeywordTok , "class" ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( NormalTok , "face1" ) , ( OperatorTok , ":" ) , ( NormalTok , " " ) , ( BuiltInTok , "Char" ) , ( OperatorTok , "," ) , ( NormalTok , " face2" ) , ( OperatorTok , ":" ) , ( NormalTok , " " ) , ( BuiltInTok , "Char" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "isFacedWith" ) , ( OperatorTok , "(" ) , ( NormalTok , "that" ) , ( OperatorTok , ":" ) , ( NormalTok , " " ) , ( BuiltInTok , "Char" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) , ( NormalTok , " that " ) , ( OperatorTok , "==" ) , ( NormalTok , " face1 " ) , ( OperatorTok , "||" ) , ( NormalTok , " that " ) , ( OperatorTok , "==" ) , ( NormalTok , " face2 " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "override" ) , ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "toString" ) , ( OperatorTok , "()" ) , ( NormalTok , " " ) , ( OperatorTok , "=" ) , ( NormalTok , " face1" ) , ( OperatorTok , "." ) , ( NormalTok , "toString " ) , ( OperatorTok , "+" ) , ( NormalTok , " face2" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "protected" ) , ( NormalTok , " " ) , ( KeywordTok , "object" ) , ( NormalTok , " Block " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "apply" ) , ( OperatorTok , "(" ) , ( NormalTok , "faces" ) , ( OperatorTok , ":" ) , ( NormalTok , " String" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( KeywordTok , "new" ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( NormalTok , "faces" ) , ( OperatorTok , "." ) , ( NormalTok , "head" ) , ( OperatorTok , "," ) , ( NormalTok , " faces" ) , ( OperatorTok , "." ) , ( NormalTok , "last" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "type" ) , ( NormalTok , " word " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( BuiltInTok , "Seq" ) , ( OperatorTok , "[" ) , ( NormalTok , "Block" ) , ( OperatorTok , "]" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "private" ) , ( NormalTok , " " ) , ( KeywordTok , "val" ) , ( NormalTok , " blocks " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( BuiltInTok , "List" ) , ( OperatorTok , "(" ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"BO\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"XK\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"DQ\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"CP\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"NA\"" ) , ( OperatorTok , ")," ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"GT\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"RE\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"TG\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"QD\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"FS\"" ) , ( OperatorTok , ")," ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"JW\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"HU\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"VI\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"AN\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"OB\"" ) , ( OperatorTok , ")," ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"ER\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"FS\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"LY\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"PC\"" ) , ( OperatorTok , ")," ) , ( NormalTok , " " ) , ( FunctionTok , "Block" ) , ( OperatorTok , "(" ) , ( StringTok , "\"ZM\"" ) , ( OperatorTok , "))" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "private" ) , ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , ":" ) , ( NormalTok , " String" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , ":" ) , ( NormalTok , " word" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "getTheBlocks" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , ":" ) , ( NormalTok , " String" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , ":" ) , ( NormalTok , " word" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "def" ) , ( NormalTok , " " ) , ( FunctionTok , "inner" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , ":" ) , ( NormalTok , " String" ) , ( OperatorTok , "," ) , ( NormalTok , " toCompare" ) , ( OperatorTok , ":" ) , ( NormalTok , " word" ) , ( OperatorTok , "," ) , ( NormalTok , " rest" ) , ( OperatorTok , ":" ) , ( NormalTok , " word" ) , ( OperatorTok , "," ) , ( NormalTok , " accu" ) , ( OperatorTok , ":" ) , ( NormalTok , " word" ) , ( OperatorTok , "):" ) , ( NormalTok , " word " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" ) , ( NormalTok , " " ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "." ) , ( NormalTok , "isEmpty " ) , ( OperatorTok , "||" ) , ( NormalTok , " rest" ) , ( OperatorTok , "." ) , ( NormalTok , "isEmpty " ) , ( OperatorTok , "||" ) , ( NormalTok , " toCompare" ) , ( OperatorTok , "." ) , ( NormalTok , "isEmpty" ) , ( OperatorTok , ")" ) , ( NormalTok , " accu" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "else" ) , ( NormalTok , " " ) , ( ControlFlowTok , "if" ) , ( NormalTok , " " ) , ( OperatorTok , "(" ) , ( NormalTok , "toCompare" ) , ( OperatorTok , "." ) , ( NormalTok , "head" ) , ( OperatorTok , "." ) , ( FunctionTok , "isFacedWith" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "." ) , ( NormalTok , "head" ) , ( OperatorTok , "))" ) , ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "val" ) , ( NormalTok , " restant " ) , ( OperatorTok , "=" ) , ( NormalTok , " rest diff " ) , ( BuiltInTok , "List" ) , ( OperatorTok , "(" ) , ( NormalTok , "toCompare" ) , ( OperatorTok , "." ) , ( NormalTok , "head" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "inner" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "." ) , ( NormalTok , "tail" ) , ( OperatorTok , "," ) , ( NormalTok , " restant" ) , ( OperatorTok , "," ) , ( NormalTok , " restant" ) , ( OperatorTok , "," ) , ( NormalTok , " accu " ) , ( OperatorTok , ":+" ) , ( NormalTok , " toCompare" ) , ( OperatorTok , "." ) , ( NormalTok , "head" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) , ( NormalTok , " " ) , ( ControlFlowTok , "else" ) , ( NormalTok , " " ) , ( FunctionTok , "inner" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "," ) , ( NormalTok , " toCompare" ) , ( OperatorTok , "." ) , ( NormalTok , "tail" ) , ( OperatorTok , "," ) , ( NormalTok , " rest" ) , ( OperatorTok , "," ) , ( NormalTok , " accu" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "inner" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "," ) , ( NormalTok , " Nil" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " word" ) , ( OperatorTok , "." ) , ( FunctionTok , "lengthCompare" ) , ( OperatorTok , "(" ) , ( FunctionTok , "getTheBlocks" ) , ( OperatorTok , "(" ) , ( NormalTok , "word" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , ")." ) , ( NormalTok , "size" ) , ( OperatorTok , ")" ) , ( NormalTok , " " ) , ( OperatorTok , "==" ) , ( NormalTok , " " ) , ( DecValTok , "0" ) ] , [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "val" ) , ( NormalTok , " words " ) , ( OperatorTok , "=" ) , ( NormalTok , " " ) , ( BuiltInTok , "List" ) , ( OperatorTok , "(" ) , ( StringTok , "\"A\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"BARK\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"BOOK\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"TREAT\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"COMMON\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"SQUAD\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"CONFUSED\"" ) , ( OperatorTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"ANBOCPDQERSFTGUVWXLZ\"" ) , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( CommentTok , "// Automatic tests" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "0" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "1" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(!" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "2" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) , ( NormalTok , " " ) , ( CommentTok , "// BOOK not" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "3" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(!" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "4" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) , ( NormalTok , " " ) , ( CommentTok , "// COMMON not" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "5" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "6" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "assert" ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( FunctionTok , "words" ) , ( OperatorTok , "(" ) , ( DecValTok , "7" ) , ( OperatorTok , ")," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) ] , [] , [ ( NormalTok , " " ) , ( CommentTok , "//words(7).mkString.permutations.foreach(s => assert(isMakeable(s, blocks)))" ) ] , [] , [ ( NormalTok , " words" ) , ( OperatorTok , "." ) , ( FunctionTok , "foreach" ) , ( OperatorTok , "(" ) , ( NormalTok , "w " ) , ( OperatorTok , "=>" ) , ( NormalTok , " " ) , ( FunctionTok , "println" ) , ( OperatorTok , "(" ) , ( SpecialStringTok , "s\"$w" ) , ( StringTok , " can" ) , ( SpecialStringTok , "${" ) , ( ControlFlowTok , "if" ) , ( NormalTok , " " ) , ( OperatorTok , "(" ) , ( FunctionTok , "isMakeable" ) , ( OperatorTok , "(" ) , ( NormalTok , "w" ) , ( OperatorTok , "," ) , ( NormalTok , " blocks" ) , ( OperatorTok , "))" ) , ( NormalTok , " " ) , ( StringTok , "\" \"" ) , ( NormalTok , " " ) , ( ControlFlowTok , "else" ) , ( NormalTok , " " ) , ( StringTok , "\"not \"" ) , ( SpecialStringTok , "}" ) , ( StringTok , "be made." ) , ( SpecialStringTok , "\"" ) , ( OperatorTok , "))" ) ] , [ ( OperatorTok , "}" ) ] ]