{"slug": "memelang-token-terse-query-language", "title": "Memelang: Token-Terse Query Language", "summary": "HOLTWORK LLC released Memelang 11.04, a terse query DSL intermediate representation that it says cuts LLM token costs for text-to-SQL by translating low-token queries into higher-token SQL, citing a 20-token Memelang query that expands to 36 tokens of SQL. The patented language uses an axial grammar of Axis2, Axis1, Axis0 and Cell, with whitespace triggering new cells, and ships with a copy-and-paste prompt for LLMs plus examples covering filtering, grouping, sorting and similarity search. HOLTWORK positions Memelang for systems emitting billions of SQL queries daily, where the token reduction lowers compute spend.", "body_md": "# Memelang\n\nMemelang is a terse query language that substantially reduces compute costs for LLMs emitting billions of SQL queries daily. Low-token Memelang is emitted as an intermediate representation which is then programatically translated into higher-token SQL for the database. Example:\n\n*Memelang (20 tokens)*`roles actor :$a=\"Mark Hamill\";movie _;@ @ @;actor !$a`\n*SQL (36 tokens)*`SELECT x.actor,x.movie,y.movie,y.actor FROM roles AS x,roles AS y WHERE x.actor='Mark Hamill' AND y.id!=x.id AND y.movie=x.movie`\n[Copy all code](#)\n\n```\n# Copy-and-paste this code into your LLM to ask how Memelang works\n# info@memelang.net | (c)2026 HOLTWORK LLC | Patented\n# MEMELANG is a terse query DSL IR for LLM text-to-SQL\n# Axial grammar: Axis2 -> Axis1 -> Axis0 -> Cell\n# Whitespaces are syntactic and trigger \"new Cell\"\n# Never space between operator/comparator/comma/flag and values\n\nMEMELANG_VER = 11.04\n\nbasic_syntax = '[table WS] [column WS] [\":$\" var][\":\" (\"min\"|\"max\"|\"cnt\"|\"sum\"|\"avg\"|\"last\"|\"grp\")] [\":\" (\"asc\"|\"des\")] [\"<=>\" \"\\\"\" string \"\\\"\"] [(\"=\"|\"!=\"|\">\"|\"<\"|\">=\"|\"<=\"|\"~\"|\"!~\") (string|int|float|(\"$\" var)|\"@\"|\"_\")] \";\"'\n\nexamples = '''\n%mode=tab;\nroles id :int>0; rating :DESC=\"Decimal 0-5 star rating of performance\";:dec>0.0;<=5; actor :DESC=\"Actor's full name\";:str; movie :DESC=\"Movie's full name\";:str; character :DESC=\"Character's full name\";:str;;\nactors id :int>0; name :DESC=\"Actor's full name\";:str; age :DESC=\"Actor's age in years\";:int>=0;<200;;\nmovies id :int>0; description :DESC=\"Brief description of movie plot\";:str; year :DESC=\"Year of production AD\";:int>1800;<2100; genre scifi,drama,comedy,documentary;:str; title :DESC=\"Full movie title\";:str;;\nactors name _; roles actor @;;\nmovies title _; roles movie @;;\nroles id :gct=1;;\nroles movie :grp; actor :grp; character :gct=1;;\nactors id :gct=1;;\nmovies id :gct=1;;\n\n%mode=qry;\n\"\"\" All movies \"\"\"\nmovies _ _;;\n\n\"\"\" Every role \"\"\"\nroles _ _;;\n\n\"\"\" Titles and descriptions for movies \"\"\"\nmovies title _; description _;;\n\n\"\"\" Actor name and ages \"\"\"\nactors name _; age _;;\n\n\"\"\" Actors age 41 years or older \"\"\"\nactors age >=41; _;;\n\n\"\"\" Role 567 and 8901 \"\"\"\nroles id 567,8901; _;;\n\n\"\"\" Films with dystopian society narratives sim>.33 \"\"\"\nmovies description <=>\"dystopian\"<0.33; _;;\n\n\"\"\" Movies titled with Star released in 1977 or 1980 \"\"\"\nmovies title ~\"Star\"; year 1977,1980; _;;\n\n\"\"\" Actors named like Ana aged 20 to 35 inclusive \"\"\"\nactors name ~\"Ana\"; age >=20;<=35; _;;\n\n\"\"\" Roles rated below 1.5 for movies before 1980 \"\"\"\nmovies year <1980; title _; roles movie @; rating <1.5; _;;\n\n\"\"\" Roles sort rating descending, movie descending \"\"\"\nroles rating :des; movie :des;;\n\n\"\"\" All movies before 1970 ordered by year ascending \"\"\"\nmovies year :asc<1970; _;;\n\n\"\"\" Average performer rating at least 4.2 \"\"\"\nroles rating :avg>=4.2; actor :grp;;\n\n\"\"\" Minimum role rating by actor, low to high \"\"\"\nroles rating :min:asc; actor :grp;;\n\n\"\"\" Roles in movies mentioning robot rated 3+ \"\"\"\nmovies description <=>\"robot\"<=$sim; title _; roles movie @; rating >=3;;\n\n\"\"\" Costars seen with Bruce Willis or Uma Thurman \"\"\"\nroles actor :$a~\"Bruce Willis\",\"Uma Thurman\"; movie _;@ @ @; actor !$a;;\n\n\"\"\" War stories before 1980: top 12 movies by minimum role rating \"\"\"\nmovies year <1980; description <=>\"war\"<=$sim; title :grp; roles movie @; rating :min:des;%beg=0;%lim=12;;\n\n\"\"\" Roles for movies Hero or House of Flying Daggers where actor name includes Li, actor A-Z \"\"\"\nmovies title \"Hero\",\"House of Flying Daggers\"; roles movie @; actor :asc~\"Li\";;\n\n\"\"\" Titles containing Here about robots between 1900 and 2000 \"\"\"\nmovies title ~\"Hero\"; description <=>\"robot\"; year >=1900; <=2000;;\n%tab=movies;  #%val; %col=title; ~\"Hero\"; %col=description; <=>\"robot\"; %col=year; >=1900; <=2000;;\n%tab=movies; #title #description #year; ~\"Hero\" <=>\"robot\" >=1900; <=2000;;\n%tab=movies; #title; ~\"Hero\"; #description; <=>\"robot\"; #year; >=1900; <=2000;;\n#%tab #%val; movies :#title~\"Hero\"; :#description<=>\"robot\"; :#year>=1900; <=2000;;\n'''\n\nimport re, sys, json\nfrom typing import Optional, Union, List, Iterator, Pattern, Any\nErr = SyntaxError\n\n### SYNTAX ###\n\nCELL_PATTERN = (\n\t('QUO',   \tr'\"(?:[^\"\\\\\\n\\r]|\\\\.)*\"'),\n\t('EMB',\t\tr'\\[(?:-?\\d+(?:\\.\\d+)?)(?:\\s*,\\s*-?\\d+(?:\\.\\d+)?)*\\]'),\n\t('MOD',\t\tr'<->|<=>|<#>'),\n\t('CMP', \tr'>=|<=|!~|!=|=|>|<|~|!'),\n\t('BIND',\tr':\\$\\w+'),\n\t('FLAG',\tr':[a-zA-Z]+'),\n\t('VAR',\t\tr'\\$\\w+'),\n\t('REL',  \tr'@\\d?|\\^'),\n\t('WLD', \tr'_'),\n\t('EVAR', \tr'%[a-zA-Z0-9_]+'),\n\t('SLOT', \tr'#%?[a-zA-Z0-9_]+'),\n\t('ASSN', \tr':#[a-zA-Z0-9_]+'),\n\t('TIM',\t\tr'\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}'),\n\t('DEC',\t\tr'-?\\d*\\.\\d+'),\n\t('INT',\t\tr'-?\\d+'),\n\t('ALN',\t\tr'[A-Za-z][A-Za-z0-9_]*'),\n\t('OR',\t\tr','),\n\t('WS',\t\tr'\\s+'),\n\t('MISMATCH', r'.'),\n)\n\nCANON = {'!':'!='}\n\nCELL_REGEX=re.compile(\"|\".join(f\"(?P<{k}>{p})\" for k, p in CELL_PATTERN))\n\nPAD_MODES = {'qry','tab'}\nFLAG_KINDS = {'FLAG','BIND','EVAR','ASSN'}\nLIT_KINDS = {'TIM','DEC','INT','ALN','QUO','EMB'}\nVAR_KINDS = {'VAR','WLD','REL','EVAR','SLOT'}\nDAT_KINDS = LIT_KINDS | VAR_KINDS\nRELCOORD = {\n\t'@0': ['-1','-1'],\n\t'@1': ['-1','-2'],\n\t'@2': ['-1','-3'],\n\t'@3': ['-1','-4'],\n\t'@4': ['-1','-5'],\n\t'@'  : ['-1','+0'],\n\t'^'  : ['-1','end','+0'],\n}\n\n# Atomic token\nclass Tok:\n\tdef __init__(self, kind: str, src: str, canon: Optional[str] = None):\n\t\tself.kind = kind\n\t\tself.src = src\n\t\tcanon = src if canon is None else canon\n\t\tself.canon = CANON.get(canon) or canon\n\t\tparser = {'QUO': json.loads, 'EMB': json.loads, 'DEC': float, 'INT': int}.get(kind)\n\t\tself.dat = parser(src) if parser else src\n\tdef __str__(self): return self.src\n\tdef __repr__(self): return self.canon\n\tdef __eq__(self, other): return repr(self) == repr(other)\n\tdef __hash__(self): return hash(self.src)\n\tdef __bool__(self): return bool(self.src)\n\nTOK_NULL = Tok('NULL', '')\n\n# Sequence of tokens\nclass Seq(list[Tok]):\n\topr: Tok = TOK_NULL\n\tdef __init__(self, *items):\n\t\tsuper().__init__(items)\n\t\tself.opr = TOK_NULL\n\tdef __str__(self): return self.opr.src.join([str(t) for t in self if len(str(t)) or t.kind=='HOLD'])\n\tdef __repr__(self): return self.opr.src.join([repr(t) for t in self])\n\n# Predicate expression\nclass Cell:\n\tflag: Seq\n\tleft: Seq\n\tcomp: Tok\n\tright: Seq\n\tpadded = False\n\n\tdef __init__(self, src: str):\n\t\tself.left = Seq()\n\t\tself.flag = Seq()\n\t\tself.comp = Tok('EQL', '', '=')\n\t\tself.right = Seq(Tok('WLD', '', '_'))\n\n\t\ttoks = []\n\t\tfor m in CELL_REGEX.finditer(src):\n\t\t\tkind = m.lastgroup\n\t\t\ttext = m.group()\n\t\t\tif kind == 'WS': continue\n\t\t\tif kind == 'MISMATCH': raise Err(f'E_TOK {text!r}')\n\t\t\ttoks.append(Tok(kind, text))\n\n\t\ti, n = 0, len(toks)\n\n\t\tdef peek(): return toks[i].kind if i < n else ''\n\n\t\tdef take():\n\t\t\tnonlocal i\n\t\t\tif i >= n: raise Err('E_EOF')\n\t\t\tt = toks[i]\n\t\t\ti += 1\n\t\t\treturn t\n\n\t\t# FLAGS\n\t\twhile peek() in FLAG_KINDS:\n\t\t\tself.flag.append(take())\n\n\t\t# LEFT (prefix MOD)\n\t\tif peek() == 'MOD':\n\t\t\tself.left.opr = take()\n\t\t\tself.left.append(Tok('HOLD', ''))\n\t\t\tt = take()\n\t\t\tif not t.kind in DAT_KINDS: raise Err('E_TERM_DAT')\n\t\t\tself.left.append(t)\n\n\t\t# COMPARATOR\n\t\tif peek() == 'CMP':\n\t\t\tself.comp = take()\n\t\t\tif not peek() in DAT_KINDS: raise Err('E_DAT')\n\n\t\t# RIGHT (values, OR-joined)\n\t\tif peek() in DAT_KINDS:\n\t\t\tself.right.clear()\n\t\t\twhile peek() in DAT_KINDS:\n\t\t\t\tself.right.append(take())\n\t\t\t\tif peek() == 'OR':\n\t\t\t\t\tself.right.opr = take()\n\t\t\t\t\tif not peek() in DAT_KINDS: raise Err('E_OR_TRAIL')\n\n\t\tif i != n: raise Err(f'E_EXPR_TRAIL {toks[i:]}')\n\n\t# PLACEHOLDER: OVERWRITE WITH YOUR EMBEDDING FUNCTION\n\tdef vectorize(self, tok: Tok) -> Tok:\n\t\tif tok.kind == 'EMB': return tok\n\t\tif tok.kind not in {'QUO', 'ALN'}: raise Err('E_EMBED')\n\t\treturn Tok('EMB', json.dumps([0.1, 0.2]))\n\n\t@property\n\tdef single(self) -> Tok:\n\t\treturn self.right[0] if self.comp.canon == '=' and len(self.right) == 1 else TOK_NULL\n\n\t@property\n\tdef literal(self) -> Tok:\n\t\ttok = self.single\n\t\treturn tok if tok.kind in LIT_KINDS else TOK_NULL\n\n\tdef find(self, kind:str) -> Tok:\n\t\treturn next((flag for flag in self.flag if flag.kind == kind), TOK_NULL)\n\n\tdef bind(self, tok: Tok):\n\t\tif tok not in self.flag: self.flag.append(tok)\n\n\tdef __str__(self) -> str: return f\"{self.flag}{self.left}{self.comp}{self.right}\"\n\n\tdef __repr__(self) -> str: return f\"{self.flag!r}{self.left!r}{self.comp!r}{self.right!r}\"\n\n\tdef __bool__(self) -> bool: return bool(self.flag or self.left or self.right)\n\n### GRAMMAR ###\n\nclass Axis(list):\n\tsrc: str = ''\n\tsep: str = None\t\t\t# SEPERATOR TOKEN\n\tsepreg: str = None\t\t# SEPERATOR REG EXP\n\tsepstr: str = None\t\t# SEPERATOR OUT\n\tempt: bool = False\t\t# ALLOW EMPTY SUB-AXES?\n\tsub = None\t\t\t\t# SUB-AXIS NAME\n\n\tdef __init__(self, src: str):\n\t\tif self.sep is None: raise Err('E_AXIS_SEP')\n\t\tif not self.sepreg: self.sepreg = re.escape(self.sep)\n\t\tif not self.sepstr: self.sepstr = self.sep + ' '\n\t\tself.src= src\n\t\tself.parse(src.strip())\n\n\t@property\n\tdef regex(self) -> Pattern[str]:\n\t\treturn re.compile(rf'''\n\t\t(?P<COMM>\"\"\"(?:(?!\"\"\")[^\\n\\r\\\\]|\\\\.)*\"\"\")|\n\t\t(?P<EXPQ>\"(?:[^\"\\\\\\n\\r]|\\\\.)*\")|\n\t\t(?P<SEP>{self.sepreg})|\n\t\t(?P<EXPM>[^\"{re.escape(self.sep[0])}]+)|\n\t\t(?P<EXPS>.)\n\t\t''', re.VERBOSE)\n\n\tdef parse(self, src: str):\n\t\texprs: List[str] = []\n\n\t\tfor m in self.regex.finditer(src):\n\t\t\tif m.lastgroup == 'SEP':\n\t\t\t\tif exprs or self.empt:\n\t\t\t\t\tself.append(self.sub(\"\".join(exprs)))\n\t\t\t\t\texprs.clear()\n\t\t\telif m.lastgroup != 'COMM': exprs.append(m.group())\n\n\t\t# debuffer expression\n\t\tif exprs: self.append(self.sub(\"\".join(exprs)))\n\n\tdef pull(self, coords):\n\t\tvalue = self\n\t\tfor coord in coords: value = value[coord]\n\t\treturn value\n\n\tdef __str__(self) -> str:\n\t\titems = [str(t) for t in self]\n\t\treturn self.sepstr.join([s for s in items if (s or self.empt)])\n\n# \"Table column value\" semantic sequence of Cell predicates\nclass Axis0(Axis):\n\tsep = ' '\n\tsepstr = ' '\n\tsepreg = r'\\s+'\n\tsub = Cell\n\n# AND-joined sequence of Axis0\nclass Axis1(Axis):\n\tsep = ';'\n\tsub = Axis0\n\n# OR-joined sequence of Axis1\nclass Axis2(Axis):\n\tsep = ';;'\n\tsub = Axis1\n\n\t@staticmethod\n\tdef coordrel(coords, rel):\n\t\trel = [\"+0\"] * max(0, len(coords) - len(rel)) + [str(op) for op in rel]\n\t\tout = []\n\n\t\tfor coord, op in zip(coords, rel):\n\t\t\tif op == \"end\": v=-1\n\t\t\telif (v:=(coord + int(op)))<0: raise ValueError('E_REL_BIND')\n\t\t\tout.append(v)\n\n\t\treturn out\n\n\t# Rectangularize\n\t# Left-pad Axis0\n\t# Replace relatives `@` with coordinate vars `$x_y_z`\n\t# Assign slots\n\tdef rect(self):\n\t\tenv = {'mode':'qry'}\n\t\tslots = [Tok('EVAR','','%tab'),  Tok('EVAR','','%col'), Tok('EVAR','','%val')]\n\n\t\tfor idx2, axis1 in enumerate(self):\n\t\t\tidx = [idx2, None, None]\n\n\t\t\tfor idx1, axis0 in enumerate(axis1):\n\t\t\t\tif not axis0: continue\n\t\t\t\tidx[1:] = [idx1, None]\n\n\t\t\t\t# %KEY=VAL %KEY=VAL\n\t\t\t\tif bool(axis0[0].find('EVAR')):\n\t\t\t\t\tfor cell in axis0:\n\t\t\t\t\t\tif not bool(cell.find('EVAR')): raise Err('E_AXIS_MET')\n\t\t\t\t\t\tenv[cell.find('EVAR').canon[1:]] = cell.single.dat\n\t\t\t\t\tcontinue\n\n\t\t\t\t#SLOT #SLOT #SLOT\n\t\t\t\tif axis0[0].single.kind=='SLOT':\n\t\t\t\t\tslots=[]\n\t\t\t\t\tfor cell in axis0:\n\t\t\t\t\t\tif cell.single.kind!='SLOT': raise Err('E_AXIS_SLOT')\n\t\t\t\t\t\tif cell.single.canon[1]=='%': slots.append(Tok('EVAR', '', cell.single.canon[1:]))\n\t\t\t\t\t\telse: slots.append(Tok('ASSN','',':'+cell.single.canon))\n\t\t\t\t\tcontinue\n\t\n\t\t\t\tif env['mode'] not in PAD_MODES: continue\n\n\t\t\t\t# Pad Axis0\n\t\t\t\taxis0len=len(slots)\n\t\t\t\tif len(axis0) > axis0len: raise Err('E_AXIS0_LONG')\n\t\t\t\tfor _ in range(axis0len - len(axis0)):\n\t\t\t\t\tcell = axis0.sub('@')\n\t\t\t\t\tcell.padded=True\n\t\t\t\t\taxis0.insert(0, cell)\n\n\t\t\t\tfor idx0, cell in enumerate(axis0):\n\t\t\t\t\tidx[2] = idx0\n\n\t\t\t\t\t# Assign slot\n\t\t\t\t\tcell.bind(slots[idx0])\n\n\t\t\t\t\t# Replace relative tokens with coordinate vars\n\t\t\t\t\tfor seq in (cell.left, cell.right):\n\t\t\t\t\t\tfor n, tok in enumerate(seq):\n\t\t\t\t\t\t\tif tok.kind!='REL': continue\n\n\t\t\t\t\t\t\tcoords=self.coordrel(idx, RELCOORD[tok.canon])\n\t\t\t\t\t\t\tsrc=self.pull(coords)\n\n\t\t\t\t\t\t\tif src.literal.kind != 'NULL':\n\t\t\t\t\t\t\t\tseq[n] = src.literal\n\t\t\t\t\t\t\t\tcontinue\n\n\t\t\t\t\t\t\tname = '$'+'_'.join(map(str, coords)).replace('-1','E')\n\t\t\t\t\t\t\tseq[n] = Tok('VAR', '', name)\n\t\t\t\t\t\t\tsrc.bind(Tok('BIND', '', ':'+name))\n\n### PG SQL ###\n\nPH = '%s'\nParam = List[Union[int, float, str, list]]\n\nclass SQL:\n\tdef __init__(self, sql: str = '', param: Optional[Param] = None):\n\t\tself.sql = sql\n\t\tself.param = [] if param is None else list(param)\n\n\tdef sql_value(self) -> \"SQL\":\n\t\treturn self\n\n\tdef __str__(self) -> str:\n\t\tsql = self.sql\n\t\tfor p in self.param: sql = sql.replace(PH, json.dumps(p), 1)\n\t\treturn sql\n\n\tdef __repr__(self) -> str: return str((self.sql, self.param))\n\n\t@staticmethod\n\tdef uniq(terms: \"SQL\") -> list[\"SQL\"]:\n\t\tout, seen = [], set()\n\t\tfor term in terms:\n\t\t\tif term is None: continue\n\t\t\tkey = (term.sql, tuple(map(repr, term.param)))\n\t\t\tif key in seen: continue\n\t\t\tseen.add(key)\n\t\t\tout.append(term)\n\t\treturn out\n\nclass CellSQL(Cell):\n\tflag2agg = {':cnt':'COUNT', ':sum':'SUM', ':avg':'AVG', ':min':'MIN', ':max':'MAX', ':last':'MAX'}\n\tcmp2sql  = {'~':' ILIKE ', '!~':' NOT ILIKE '}\n\tmod2sql  = {}\n\n\tdef __init__(self, src: str):\n\t\tsuper().__init__(src)\n\t\tself.base = self.alias = ''\n\t\tself.param = []\n\t\tflags = {t.canon for t in self.flag if t.kind == 'FLAG'}\n\t\tself.agg = next((sql for flag, sql in self.flag2agg.items() if flag in flags), '')\n\t\tself.grouped = ':grp' in flags\n\t\tself.sort = 'ASC' if ':asc' in flags else 'DESC' if ':des' in flags else ''\n\n\tdef deref(self, bind: dict[str, SQL], with_agg: bool = True) -> Iterator[SQL]:\n\t\tfor t in self.right:\n\t\t\tif t.kind == 'VAR':\n\t\t\t\tkey = t.canon[1:]\n\t\t\t\tif key not in bind: raise Err(f'E_VAR_BIND {key}')\n\t\t\t\tref = bind[key]\n\t\t\telse:\n\t\t\t\tyield SQL(PH, [t.dat])\n\t\t\t\tcontinue\n\n\t\t\tif isinstance(ref, CellSQL): yield ref.sql_value(with_agg=with_agg)\n\t\t\telse: yield ref.sql_value()\n\n\t@property\n\tdef sql_groupby(self) -> Optional[SQL]:\n\t\tif not self.grouped: return None\n\t\tif self.agg: raise Err('E_GRP_AGG')\n\t\treturn SQL(self.base, self.param)\n\n\tdef sql_value(self, grouped: bool = False, alias: bool = False, order: bool = False, with_agg: bool = True) -> SQL:\n\t\tsql, param = self.base, list(self.param)\n\t\tif self.left.opr.kind == 'MOD':\n\t\t\tsql = f'({sql}{self.left.opr.canon}{PH}::VECTOR)'\n\t\t\tparam.append(self.vectorize(self.left[1]).canon)\n\t\tagg = self.agg or ('MAX' if grouped and not self.grouped else '') if with_agg else ''\n\t\tif agg: sql = f'{agg}({sql})'\n\t\tif alias and self.alias: sql = f'{sql} AS {self.alias}'\n\t\tif order and self.sort: sql = f'{sql} {self.sort}'\n\t\treturn SQL(sql, param)\n\n\tdef sql_clause(self, bind: dict[str, SQL]) -> Optional[tuple[str, SQL]]:\n\t\tif not self.right or self.single.canon == '_': return None\n\n\t\tleft = self.sql_value()\n\t\trights = list(self.deref(bind, with_agg=bool(self.agg)))\n\t\tcomp = self.comp.canon\n\t\tsqlcomp = self.cmp2sql.get(self.comp.canon) or self.comp.canon\n\n\t\tif comp in {'>', '<', '>=', '<='} and len(rights) != 1: raise Err('E_COMP_OR')\n\n\t\titems, params = [], []\n\t\tfor right in rights:\n\t\t\titems.append(f\"CONCAT('%', {right.sql}, '%')\" if comp in {'~', '!~'} else right.sql)\n\t\t\tparams.extend(right.param)\n\n\t\tif len(items) == 1: beg, end = '', ''\n\t\telif comp in {'=', '~'}: beg, end = 'ANY(ARRAY[', '])'\n\t\telif comp in {'!=', '!~'}: beg, end = 'ALL(ARRAY[', '])'\n\t\telse: raise Err('E_COMP_OR2')\n\n\t\treturn ('having' if self.agg else 'where'), SQL(f\"{left.sql}{sqlcomp}{beg}{','.join(items)}{end}\", left.param + params)\n\nclass Grid(Axis2):\n\n\tdef select(self) -> List[SQL]:\n\t\tself.rect()\n\t\tout = []\n\t\tenv = {'mode':'qry', 'sim':0.5,'tab':'','taba':'','cola':''}\n\n\t\tfor axis1 in self:\n\t\t\tenv['lim'], env['beg'] = 0, 0\n\t\t\tbind = {k: SQL(PH, [v]) for k, v in env.items()}\n\t\t\ttab_cnt = 0\n\t\t\tqry = {'select':[], 'from':[], 'fromall':[], 'groupby':[], 'where':[], 'having':[], 'orderby':[]}\n\t\t\tgrouped = False\n\t\t\tallselected = False\n\n\t\t\tfor axis0 in axis1:\n\n\t\t\t\tif env['mode']!='qry': continue\n\n\t\t\t\tif axis0.src == '_':\n\t\t\t\t\tallselected = True\n\t\t\t\t\tcontinue\n\t\n\t\t\t\tfor idx0, cell in enumerate(axis0):\n\t\t\t\t\t#print(repr(cell))\n\t\t\t\t\tsingle = cell.single.dat\n\t\t\t\t\tif cell.padded or cell.single.kind=='SLOT': continue\n\n\t\t\t\t\t# EVAR for TAB/COL\n\t\t\t\t\tevarval = cell.find('EVAR').canon\n\t\t\t\t\tif evarval=='%val': pass\n\t\t\t\t\telif evarval:\n\t\t\t\t\t\tenv[evarval[1:]] = cell.single.dat\n\t\t\t\t\t\tbind[evarval[1:]]=SQL(PH, [cell.single.dat])\n\n\t\t\t\t\t\tif evarval=='%tab':\n\t\t\t\t\t\t\tif not re.fullmatch(r'[A-Za-z_][A-Za-z0-9_$]{0,62}', single): raise Err('E_TAB_NAME')\n\t\t\t\t\t\t\ttab_cnt += 1\n\t\t\t\t\t\t\tenv['tab']=single\n\t\t\t\t\t\t\tenv['taba']=f\"t{tab_cnt}\"\n\t\t\t\t\t\t\tqry['from'].append(SQL(f\"{env['tab']} AS {env['taba']}\"))\n\t\t\t\t\t\t\tqry['fromall'].append(env['taba'])\n\n\t\t\t\t\t\telif evarval=='%col':\n\t\t\t\t\t\t\tif single == '_': allselected = True\n\t\t\t\t\t\t\telif not re.fullmatch(r'[A-Za-z_]+[A-Za-z0-9_$]{0,62}', single): raise Err('E_COL_NAME')\n\t\t\t\t\t\t\tenv['cola'] = single\n\n\t\t\t\t\t\tcontinue\n\n\t\t\t\t\t# SLOT for COL\n\t\t\t\t\tassnval = cell.find('ASSN').canon\n\t\t\t\t\tif assnval: env['cola'] = assnval[2:]\n\n\t\t\t\t\tif not env['taba']: raise Err('E_TAB_REQ')\n\t\t\t\t\t\n\t\t\t\t\tvalcell = CellSQL(repr(cell))\n\t\t\t\t\tvalcell.base = f\"{env['taba']}.{env['cola']}\"\n\n\t\t\t\t\tqry['select'].append(valcell)\n\n\t\t\t\t\tif valcell.grouped:\n\t\t\t\t\t\tgrouped = True\n\t\t\t\t\t\tqry['groupby'].append(valcell)\n\n\t\t\t\t\tif valcell.sort: qry['orderby'].append(valcell)\n\n\t\t\t\t\tclause = valcell.sql_clause(bind)\n\t\t\t\t\tif clause:\n\t\t\t\t\t\tkey, term = clause\n\t\t\t\t\t\tqry[key].append(term)\n\n\t\t\t\t\tfor flag in valcell.flag:\n\t\t\t\t\t\tif flag.kind != 'BIND': continue\n\t\t\t\t\t\tif flag.canon[2:] in env: raise Err('E_ENV_BIND')\n\t\t\t\t\t\tbind[flag.canon[2:]] = valcell\n\n\t\t\tif not qry['from']:\n\t\t\t\tout.append(SQL())\n\t\t\t\tcontinue\n\n\t\t\tparts = (\n\t\t\t\t('SELECT', ', ', [SQL(f\"{a}.*\") for a in qry['fromall']] if allselected else SQL.uniq(t.sql_value(grouped, True) for t in qry['select'])),\n\t\t\t\t('FROM', ', ', qry['from']),\n\t\t\t\t('WHERE', ' AND ', qry['where']),\n\t\t\t\t('GROUP BY', ', ', SQL.uniq(t.sql_groupby for t in qry['groupby'])),\n\t\t\t\t('HAVING', ' AND ', qry['having']),\n\t\t\t\t('ORDER BY', ', ', SQL.uniq(t.sql_value(grouped, False, True) for t in qry['orderby'])),\n\t\t\t)\n\n\t\t\tsql, param = [], []\n\t\t\tfor keyword, sep, terms in parts:\n\t\t\t\tif not terms: continue\n\t\t\t\tsql.append(f\"{keyword} \" + sep.join(t.sql for t in terms))\n\t\t\t\tfor t in terms: param.extend(t.param)\n\n\t\t\tif env['lim']: sql.append(f\"LIMIT {int(env['lim'])}\")\n\t\t\tif env['beg']: sql.append(f\"OFFSET {int(env['beg'])}\")\n\n\t\t\tout.append(SQL(' '.join(sql), param))\n\n\t\treturn out\n```\n\nThis software is free to use for development, testing, and educational purposes. Commercial deployment, redistribution, or production use requires a separate license.", "url": "https://wpnews.pro/news/memelang-token-terse-query-language", "canonical_source": "https://memelang.net/11/", "published_at": "2026-10-04 20:21:57+00:00", "updated_at": "2026-10-04 20:41:13.374546+00:00", "lang": "en", "topics": ["large-language-models", "ai-tools", "developer-tools", "ai-infrastructure"], "entities": ["HOLTWORK LLC", "Memelang", "SQL", "Mark Hamill"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/memelang-token-terse-query-language", "markdown": "https://wpnews.pro/news/memelang-token-terse-query-language.md", "text": "https://wpnews.pro/news/memelang-token-terse-query-language.txt", "jsonld": "https://wpnews.pro/news/memelang-token-terse-query-language.jsonld"}}