Files
secondo/Documents/SecondoLanguage.tex
2026-01-23 17:03:45 +08:00

89 lines
6.7 KiB
TeX

\def\MM#1{\ifmmode#1\else\mbox{$#1$}\fi}
\newcommand{\tc}[1]{\MM{\underline{\smash{\mathit{#1}}}}}
\DeclareFixedFont{\secop}{T1}{pcr}{b}{it}{8}
% define a lstlanguage for secondo queries and scripts
% emph[1] are operators
% emph[2] are types
\lstdefinelanguage{secondoscript}{keywords={let, update, restore, derive, save, database,
create, open, query, list algebras },
morekeywords={const, value, desc, asc, group, TRUE, FALSE, fun}
sensitive=true,
string=[b]{"},
comment=[l]{\#},
emph=[1]{ ANY, ANY2, ELEMENT, ELEMENT2, GROUP, PSTREAM1, PSTREAM2,
STREAMELEM, STREAMELEM2, TUPLE, TUPLE2, abs, addcounter,
addid, addtupleid, adjacent, aggregate, aggregateB, aggregateS,
always, and, approximate, area, at, atinstant, atmax, atmin, atperiods,
atpoint, atposition, attr, attrsize, avg, bbox, bbox2d, before, between,
bool2int, boundary, box2d, box3d, breakpoints, bulkloadrtree, cancel, category,
ceil, char, circle, colordist, commonborder, components, concat, concatS,
connectedcomponents, constgraph, constgraphpoints, consume, contains,
cost, count, count2, create\_duration, create\_instant, createbtree,
createdeleterel, createinsertrel, creatertree, createupdaterel, crossings,
cumulate, cut, day\_of, deftime, deletebtree, deletebyid, deletedirect,
deletedirectsave, deletertree, deletesearch, deletesearchsave, derivable, derivable\_new,
derivative, derivative\_new, dice, direction, display, distance, distribute, disturb, div,
dumpstream, duration2real, echo, edges, equal, equals, equalway, exactmatch, exactmatchS,
export, extattrsize, extdeftime, extend, extendstream, extract, exttuplesize, feed, filename,
filter, final, flipleft, floor, get, get\_duration, gettuples, gettuples2, gettuplesdbl,
getx, gety, gps, groupby, hashjoin, hashvalue, head, height, hour\_of, ifthenelse, ininterior,
initial, insert, insertbtree, insertrtree, insertsave, inserttuple, inserttuplesave, inside,
inst, instant2real, int2bool, int2real, integrate, intersection, intersection\_new, intersects,
intersects\_new, intstream, isempty, isgrayscale, isportrait, junctions, key, keywords, krdup,
ldistance, leapyear, leftrange, leftrangeS, length, like, line2region, linearize, linearize2,
locations, log, loop, loopa, loopb, loopjoin, loopjoinrel, loopsel, loopselect, loopselecta,
loopselectb, loopswitch, loopswitcha, loopswitchb, makearray, makearrayN, makemvalue, makepoint,
max, maxD, maxDuration, maxInstant, maxdegree, maximum, mbool2mint, mconsume, mdirection,
memshuffle, merge, mergediff, mergejoin, mergesec, mergeunion, millisecond\_of, min, minD,
minDuration, minInstant, mindegree, minimum, minus, minus\_new, minute\_of, mirror, mod,
month\_of, move, namedtransformstream, never, no\_components, no\_entries, no\_nodes,
no\_segments, nodes, nonequal, not, now, num2string, onborder, or, overlaps, p\_intersects,
partjoin, partjoinselect, partjoinswitch, partof, passes, pcreate, pcreate2, pdelete,
perimeter, periods2mint, pfeed, picturedate, pjoin1, pjoin2, placenodes, point2d, polylines,
pos, present, printintstream, printstream, product, project, projectextend, projectextendstream,
projecttransformstream, pshow, puse, put, queryrect2d, randint, randmax, randseed, range,
rangeS, rangevalues, rdup, real2int, realm, realstream, rect2region, rectangle2, rectangle3,
rectangle4, rectangle8, rectproject, reduce, relcount, relcount2, remove, rename, reverse,
rightrange, rightrangeS, rng\_GeneratorMaxRand, rng\_GeneratorMinRand, rng\_GeneratorName,
rng\_NoGenerators, rng\_binomial, rng\_exponential, rng\_flat, rng\_gaussian, rng\_geometric,
rng\_getMax, rng\_getMin, rng\_getSeed, rng\_getType, rng\_init, rng\_int, rng\_intN,
rng\_poisson, rng\_real, rng\_realpos, rng\_setSeed, rootattrsize, roottuplesize,
rough\_center, round, routes, sample, samplempoint, saveto, scale, second\_of, sections,
segments, sentences, seqinit, seqnext, setoption, setunitofdistance, setunitoftime,
shortestpath, shuffle, sim\_create\_trip, sim\_fillup\_mpoint, sim\_print\_params,
sim\_set\_dest\_params, sim\_set\_event\_params, sim\_set\_rng, sim\_trips, simpleequals,
simplify, single, size, sizecounters, sometimes, sort, sortarray, sortby, sortmergejoin,
source, spatialjoin, speed, speed\_new, sqrt, starts, subline, substr, sum, summarize,
symmjoin, symmproduct, symmproductextend, target, theInstant, theRange, the\_ivalue,
the\_mvalue, the\_unit, thedate, theday, thehour, theminute, themonth, thenetwork, theperiod,
thesecond, thevertex, theyear, tie, today, touchpoints, trajectory, transformstream,
translate, translateappend, translateappendS, treeheight, tupleid, tuplesize,
uint2ureal, union, union\_new, units, updatebtree, updatebyid, updatedirect, updatedirectsave,
updatertree, updatesearch, updatesearchsave, upper, use, use2, val, velocity, velocity\_new,
vertextrajectory, vertices, weekday\_of, width, windowclippingin, windowclippingout,
windowintersects, windowintersectsS, within, year\_of, zero },
emph=[2]{ array, binfile, bool, btree, date, duration,
edge, gpoint, graph, histogram,
ibool, iint, instant, int, intimeregion, ipoint, ireal, istring, line, map,
mbool, mint, movingregion, mpoint, mreal, mrel, mstring, mtuple, network,
path, periods, picture, point, points, polygon, ptuple, rbool, real, rect,
rect3, rect4, rect8, region, rel, rint, rreal, rstring, rtree, rtree3, rtree4,
rtree8, string, text, tid, trel, tuple, ubool, uint, upoint, ureal, uregion,
ustring, vertex, xpoint, xrectangle}
}
% define a style for formatting secondo commands
\definecolor{gray}{rgb}{0.5, 0.5, 0.5}
\lstdefinestyle{secondostyle}{basicstyle=\rm\small,
keywordstyle=\bfseries,
commentstyle=\color{gray}\it,
stringstyle=\texttt,
showspaces=false,
showstringspaces=false,
emphstyle=[1]\secop,
emphstyle=[2]\tc,
upquote=false,
language=secondoscript}