const lang = Object.freeze(JSON.parse("{\"displayName\":\"Smalltalk\",\"fileTypes\":[\"st\"],\"foldingStartMarker\":\"\\\\[\",\"foldingStopMarker\":\"^(?:\\\\s*|\\\\s)]\",\"name\":\"smalltalk\",\"patterns\":[{\"match\":\"\\\\^\",\"name\":\"keyword.control.flow.return.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.method.begin.smalltalk\"},\"2\":{\"name\":\"entity.name.type.class.smalltalk\"},\"3\":{\"name\":\"keyword.declaration.method.smalltalk\"},\"4\":{\"name\":\"string.quoted.single.protocol.smalltalk\"},\"5\":{\"name\":\"string.quoted.single.protocol.smalltalk\"},\"6\":{\"name\":\"keyword.declaration.method.stamp.smalltalk\"},\"7\":{\"name\":\"string.quoted.single.stamp.smalltalk\"},\"8\":{\"name\":\"string.quoted.single.stamp.smalltalk\"},\"9\":{\"name\":\"punctuation.definition.method.end.smalltalk\"}},\"match\":\"^(!)\\\\s*([A-Z_a-z][0-9A-Z_a-z]*)\\\\s+(methodsFor:)\\\\s*('([^']*)')(?:\\\\s+(stamp:)\\\\s*('([^']*)'))?\\\\s*(!?)$\",\"name\":\"meta.method.definition.header.smalltalk\"},{\"match\":\"^! !$\",\"name\":\"punctuation.definition.method.end.smalltalk\"},{\"match\":\"\\\\$.\",\"name\":\"constant.character.smalltalk\"},{\"match\":\"\\\\b(class)\\\\b\",\"name\":\"storage.type.$1.smalltalk\"},{\"match\":\"\\\\b(extend|super|self)\\\\b\",\"name\":\"storage.modifier.$1.smalltalk\"},{\"match\":\"\\\\b(yourself|new|Smalltalk)\\\\b\",\"name\":\"keyword.control.$1.smalltalk\"},{\"match\":\"/^:\\\\w*\\\\s*\\\\|/\",\"name\":\"constant.other.block.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.begin.smalltalk\"},\"2\":{\"patterns\":[{\"match\":\"\\\\b[A-Z_a-z][0-9A-Z_a-z]*\\\\b\",\"name\":\"variable.other.local.smalltalk\"}]},\"3\":{\"name\":\"punctuation.definition.variable.end.smalltalk\"}},\"match\":\"(\\\\|)(\\\\s*[A-Z_a-z][0-9A-Z_a-z]*(?:\\\\s+[A-Z_a-z][0-9A-Z_a-z]*)*\\\\s*)(\\\\|)\"},{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.smalltalk\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.smalltalk\"}},\"name\":\"meta.block.smalltalk\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\":[A-Z_a-z][0-9A-Z_a-z]*\",\"name\":\"variable.parameter.block.smalltalk\"}]},\"2\":{\"name\":\"punctuation.separator.arguments.block.smalltalk\"}},\"match\":\"((?:\\\\s*:[A-Z_a-z][0-9A-Z_a-z]*)+)\\\\s*(\\\\|)\",\"name\":\"meta.block.arguments.smalltalk\"},{\"include\":\"$self\"}]},{\"include\":\"#numeric\"},{\"match\":\";\",\"name\":\"punctuation.separator.cascade.smalltalk\"},{\"match\":\"\\\\.\",\"name\":\"punctuation.terminator.statement.smalltalk\"},{\"match\":\":=\",\"name\":\"keyword.operator.assignment.smalltalk\"},{\"match\":\"<(?![<=])|>(?![<=>])|<=|>=|==??|~=|~~|>>\",\"name\":\"keyword.operator.comparison.smalltalk\"},{\"match\":\"([-*+/\\\\\\\\])\",\"name\":\"keyword.operator.arithmetic.smalltalk\"},{\"match\":\"(?<=[\\\\t ])!+|\\\\bnot\\\\b|&|\\\\band\\\\b|\\\\||\\\\bor\\\\b\",\"name\":\"keyword.operator.logical.smalltalk\"},{\"match\":\"->|[,@]\",\"name\":\"keyword.operator.misc.smalltalk\"},{\"match\":\"(?