Page 1 of 5

Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 19:04
by Adriweb
Vous l'aurez peut-être remarqué, TI-Planet a vu son syntax-highlighter changé vers un autre plugin, beaucoup plus "sérieux" (quelques Ko plus gros, cependant, mais bon, pas grave, ça reste faible).

Le plugin utilisé est: http://highlightjs.org/
Sa doc est ici : http://highlightjs.readthedocs.org/en/l ... guide.html

Il serait je pense intéressant d'avoir un mode pour le Basic Nspire (et pourquoi pas z80).

Qui propose quelques trucs ? :)


Edit : Etat des choses avec des codes qui veulent pas dire grand chose (sauf en python):
Nspire BasicLuaPython
Code: Select all
Define balance2(x)=
Func

Local bin,reste,i
reste:={}
bin:=""

While x≥3
  reste:=augment(reste,{mod(x,3)})
  x:=int(((x)/(3)))
EndWhile

reste:=augment(reste,{mod(x,3)})

For i,0,dim(reste)-1
  bin:=string(reste[i+1])&"*"&string(3^(i))&"+"&bin
EndFor

Return mid(bin,1,dim(bin)-1)
EndFunc
Code: Select all
function somme(l)
    local s = 0
    for _,val in ipairs(l) do
        s = s + val
    end
    return s
end

function on.paint(gc)
    --turlututu chapeau pointu  ------------- ceci est un commentaire
    toto = nil
    n = 5 or true
    local i = 0
    var.monitor("bouh")
    while i <= false do
        poids[#poids+1] = 3^i
        i = i + image.new("bla")
    end

    local ed = D2Editor.newRichText()
end

balance2(42)
Code: Select all
def balance2(x):
    poids = [3**i for i in range(n+1)]
    rep = [0]*(n+1)
    dif = x
    signe = 1
    while dif != 0:
        i = 0
        s = 1
        while s < abs(dif): # on détermine le plus grand poids
            i += 1          # utile pour équilibrer
            s += poids[i]
        n = i               # n est l'indice du plus grand poids utile
        i = 0
        while i <= n and poids[i] < abs(dif):
            i += 1
        bascule = True
        if i == n+1:  # le plus grand poids utile ne suffit pas à lui seul
            i = n     # à faire basculer, mais on le laisse
            bascule = False
        rep[i] = signe
        dif -= poids[i]*signe
        if bascule:
            signe = -signe
    return(rep)

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:15
by davidElmaleh
voila une liste des fonctions souvent utilisée en Nspire-BASIC:
Show/Hide spoilerAfficher/Masquer le spoiler







  • part
  • abs
  • and
  • approx
  • arccos
  • arcsin
  • arctan
  • augment
  • char
  • cos
  • count
  • countif
  • cSolve
  • cycle
  • derivative
  • Define
  • LibPriv
  • LibPub
  • deSolve
  • det
  • dim
  • disp
  • exp
  • else
  • elseif
  • endfor
  • endfunc
  • endif
  • endloop
  • endprgm
  • endtry
  • endwhile
  • exact
  • exit
  • expand
  • expr
  • factor
  • false
  • floor
  • for
  • fpart
  • func
  • gcd
  • getdenom
  • getnum
  • gettype
  • goto
  • if
  • instring
  • int
  • integral
  • invnorm
  • ipart
  • isprime
  • lbl
  • lcm
  • left
  • lim
  • limit
  • ln
  • local
  • log
  • loop
  • max
  • mean
  • median
  • mid
  • min
  • mod
  • nand
  • ncr
  • nor
  • not
  • npr
  • nsolve
  • or
  • ord
  • passerr
  • polycoeffs
  • polydegree
  • polyrots
  • prgm
  • prodseq
  • propfrac(
  • rand
  • randint
  • randsamp
  • real
  • remain
  • request
  • requeststr
  • return
  • right
  • round
  • seq
  • setmode
  • sin
  • solve
  • sorta
  • sortd
  • sqrt
  • stop
  • string
  • sumseq
  • sum
  • tan
  • tcollect
  • texpand
  • text
  • then
  • true
  • try
  • undef
  • when
  • while
  • xor
  • zeros
  • :=


Je sais que ca fait un peu long... mais la Nspire possède tellement de fonctionnalités :p

EDIT: Pourquoi ne pas mettre aussi en couleur les chaines de caractères et les listes?

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:17
by Adriweb
Merci, c'est déjà un bon début :)

PS : tu peux enlever les "()" et les symboles, en fait, je doute qu'il en veuille :P

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:18
by davidElmaleh
ok j'edit :)

EDIT: c'est fait ;)

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:21
by Adriweb
Ok.

BTW, voilà comment le Lua est codé :
Code: Select all
/*
Language: Lua
Author: Andrew Fedorov <dmmdrs@mail.ru>
*/

function(hljs) {
  var OPENING_LONG_BRACKET = '\\[=*\\[';
  var CLOSING_LONG_BRACKET = '\\]=*\\]';
  var LONG_BRACKETS = {
    begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
    contains: ['self']
  };
  var COMMENTS = [
    {
      className: 'comment',
      begin: '--(?!' + OPENING_LONG_BRACKET + ')', end: '$'
    },
    {
      className: 'comment',
      begin: '--' + OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
      contains: [LONG_BRACKETS],
      relevance: 10
    }
  ]
  return {
    lexemes: hljs.UNDERSCORE_IDENT_RE,
    keywords: {
      keyword:
        'and break do else elseif end false for if in local nil not or repeat return then ' +
        'true until while',
      built_in:
        '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
        'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
        'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
        'io math os package string table'
    },
    contains: COMMENTS.concat([
      {
        className: 'function',
        beginKeywords: 'function', end: '\\)',
        contains: [
          hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
          {
            className: 'params',
            begin: '\\(', endsWithParent: true,
            contains: COMMENTS
          }
        ].concat(COMMENTS)
      },
      hljs.C_NUMBER_MODE,
      hljs.APOS_STRING_MODE,
      hljs.QUOTE_STRING_MODE,
      {
        className: 'string',
        begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
        contains: [LONG_BRACKETS],
        relevance: 5
      }
    ])
  };
}

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:25
by Bisam
Les symboles doivent être reconnus, si on les tape... mais tous ont un alias en toutes lettres.
"derivative" pour la dérivée
"integral" pour l'intégrale
"sumseq" pour la somme
"prodseq" pour le produit

EDIT(par davidElmaleh) : c'est corrigé ;)

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:36
by Levak
Liste complète :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
_
_A
_acre
_amu
_Ang
_atm
_au
_bar
_Btu
_c
_cal
_Cc
_cd
_cm
_coul
_cup
_day
_dyne
_erg
_eV
_F
_fath
_floz
_flozUK
_fm
_ft
_ftlb
_g
_gal
_galUK
_Gc
_GHz
_gm
_Gs
_h
_ha
_henry
_hp
_hr
_Hz
_in
_inH2O
_inHg
_J
_k
_kA
_kcal
_kg
_kgf
_kHz
_km
_knot
_kph
_kV
_kW
_kWh
_l
_latm
_lb
_lbf
_ltyr
_m
_mA
_Me
_mg
_mH
_mho
_MHz
_mi
_mil
_min
_ml
_mm
_mmH2O
_mmHg
_mmho
_Mn
_mol
_Mp
_mph
_ms
_mton
_mV
_N
_Na
_nF
_nH
_Nmi
_ns
_Oe
_ohm
_oz
_P
_Pa
_pc
_pF
_psi
_pt
_q
_qt
_Rb
_Rc
_Rdb
_rod
_s
_siemens
_slug
_St
_T
_tbsp
_ton
_tonf
_tonne
_tonUK
_torr
_tsp
_V
_Vm
_volt
_W
_Wb
_week
_yd
_yr
abs
and
and
angle
Ans
approx
approxRational
arcLen
augment
avgRC
ceiling
cFactor
char
charPoly
ClearAZ
ClrErr
colAugment
colDim
colNorm
comDenom
completeSquare
conj
constructMat
cos
cosh
cot
coth
count
countIf
cPolyRoots
crossP
csc
csch
centralDiff
cSolve
CubicReg
cumSum
Cycle
cZeros
Define
DelVar
deSolve
det
diag
dim
Disp
DoD
domain
dotP
eigVc
eigVl
Else
ElseIf
EndFor
EndFunc
EndIf
EndLoop
EndPrgm
EndTry
EndWhile
errCode
exact
Exit
exp
expand
expr
ExpReg
explist
factor
false
Fill
floor
fMax
fMin
For
format
fPart
frequency
Func
gcd
getDenom
getLangInfo()
getMode
getNum
Goto
identity
If
ifFn
imag
impDif
inString
int
intDiv
iPart
isPrime
krnBasis
Lbl
lcm
left
lim
limit
LinReg
linSolve
listmat
ln
LnReg
Local
log
Logistic
Loop
LU
matlist
max
mean
median
MedMed
mid
min
mod
mRow
mRowAdd
nand
nand
nCr
comb
nDeriv
nDerivative
newList
newMat
nfMax
nfMin
nInt
nor
nor
norm
normalLine
not
nPr
nSolve
OneVar
or
or
ord
PassErr
piecewise
polyCoeffs
polyDegree
polyEval
polyGcd
polyQuotient
polyRemainder
polyRoots
PowerReg
Prgm
product
propFrac
PRx
PRy
QR
QuadReg
QuartReg
rand89
randMat
randNorm
randPoly
RandSeed
rank
real
ref
remain
Request
RequestStr
Return
right
root
rotate
round
rowAdd
rowDim
rowNorm
rowSwap
rref
RPr
sec
sech
seq
setMode
shift
sign
simult
sin
sinh
SinReg
solve
SortA
SortD
sqrt
stDevPop
stDevSamp
Stop
string
subMat
sum
sumIf
system
tan
tangentLine
tanh
taylor
tCollect
tExpand
Text
Then
tmpCnv
trace
true
Try
TwoVar
undef
unitV
varPop
varSamp
when
While
xor
zeros
List
tmpCnv
pi
infinity
Base2
cos
Cylind
DD
Base10
Decimal
DMS
exp
approxFraction
Grad
Base16
ln
logbase
tvmN
tvmI
tvmPV
tvmPmt
tvmFV
amortTbl
bal
Int
Prn
npv
irr
mirr
nom
eff
dbd
CubicReg
ExpReg
LinRegMx
LinRegBx
LnReg
LogisticD
Logistic
MedMed
MultReg
PowerReg
QuadReg
QuartReg
SinReg
binomCdf
binomPdf
Cdf
chi2Cdf
Pdf
chi2Pdf
corrMat
FCdf
FPdf
geomCdf
geomPdf
getStatValues
inv
invChi2
invF
invNorm
invt
normCdf
normPdf
poissCdf
poissPdf
rand
randBin
randInt
randNorm
randSamp
tCdf
tPdf
ANOVA
ANOVA2way
2way
chi22way
GOF
chi2GOF
FiveNumSummary
Test_2Samp
FTest_2Samp
LinRegtIntervals
LinRegtTest
MultRegIntervals
MultRegTests
OneVar
tInterval
tInterval_2Samp
tTest
tTest_2Samp
TwoVar
zInterval
zInterval_1Prop
zInterval_2Prop
zInterval_2Samp
zTest
zTest_1Prop
zTest_2Prop
zTest_2Samp
CopyVar
dominantTerm
series
LibPriv
LibPub
Define LibPriv
Define LibPub
\
getType
part
getVarInfo
libShortcut
freqTablelist
cumulativeSum
@c
@n
@i
@e
@t
@d
@g
@r
@>
@<
=:
derivative
integral
prodSeq
sumSeq
arccos
arccosh
arccot
arccoth
arccsc
arccsch
arcsec
arcsech
arcsin
arcsinh
arctan
arctanh
deltaList
deltaTmpCnv
exp@>list
list@>mat
mat@>list
P@>Rx
P@>Ry
R@>Pr
R@>Ptheta
@>Base2
@>cos
@>Cylind
@>DD
@>Base10
@>Decimal
@>DMS
@>exp
@>approxFraction
@>Grad
@>Base16
@>ln
@>logbase
@>Polar
@>Rad
@>Rect
@>sin
@>Sphere
@>tan
freqTable@>list
void
Lock
Unlock
getLockInfo
isVoid
delVoid
euler
rk23
seqGen
seqn
warnCodes
interpolate
initialterms

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:39
by Adriweb
Ca, j'étais capable de la faire, mais je sais pas si ça vaut le coup de tout mettre :P
Meh, je verrais bien...

Pour le moment, j'ai isolé ceci :

Code: Select all
literal: "true false undef void _ :",
keyword: "and Cycle Define Else ElseIf EndFor EndFunc EndIf EndLoop EndPrgm EndTry EndWhile Exit For Goto If Local Lbl LibPriv LibPub Lock Loop nand nor not or Prgm Return Stop Then Try Unlock when While xor"


J'en ai loupé ?

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:39
by Excale
Elle sort d'où cette liste? L'ordre est pour le moins étrange.

PS pour Adriweb: undef spas un mot clef
Aussi t'as forgotté Lock et Unlock.
Et Local.
Si tu mets or et and t'as toute la famille à mettre aussi. (et auquel cas il faut mettre toutes les opérations)
Et je te passe tous les mots clefs de stats, pas très utile de les rajouter.
SortA/D si tu veux aussi.

Re: Syntax Highlight - Nspire Basic etc. ?

Unread postPosted: 29 Jun 2014, 20:40
by Levak
Excale wrote:Elle sort d'où cette liste? L'ordre est pour le moins étrange.

Bah ... res/math/locale/en/string.res + tri.