Skip to content

Commit

Permalink
chore: update tests for PARI/GP operators
Browse files Browse the repository at this point in the history
  • Loading branch information
piotr-semenov committed Apr 29, 2024
1 parent 1caec53 commit d00c963
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/general.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ repository:
general:
patterns:
-
match: '\b[[:alpha:]][[:alnum:]_]*'
match: "'?\\b[[:alpha:]][[:alnum:]_]*"
name: variable.name.parigp
-
match: '[,;\.]'
Expand Down
2 changes: 1 addition & 1 deletion src/operators.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ repository:
match: '(\~)'
name: keyword.operator.transpose.parigp
-
match: "(\\')"
match: "(\\')(?!\\b)"
name: keyword.operator.derivative.parigp
-
match: '(\#)\b\s*(?!$)'
Expand Down
61 changes: 52 additions & 9 deletions tests/operators.test.gp
Original file line number Diff line number Diff line change
@@ -1,37 +1,80 @@
## SYNTAX TEST "source.parigp" "Operators"

(var! + 100!)
## ^ source.parigp keyword.operator.factorial.parigp
##^ source.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^^^ source.parigp meta.parens.parigp variable.name.parigp
## ^ ^ source.parigp meta.parens.parigp keyword.operator.factorial.parigp
## ^ ^ source.parigp meta.parens.parigp constant.character.whitespace.parigp
## ^ source.parigp keyword.operator.arithmetic.parigp
## ^ source.parigp keyword.operator.factorial.parigp
## ^ source.parigp meta.parens.parigp punctuation.section.parens.end.parigp

(1 && []) || (0 || "string")
## ^^ source.parigp keyword.operator.logical.parigp
##^ source.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^ ^ source.parigp meta.parens.parigp constant.numeric.int.parigp
## ^^ source.parigp meta.parens.parigp keyword.operator.logical.parigp
## ^ ^ source.parigp meta.parens.parigp constant.character.whitespace.parigp
## ^ source.parigp meta.parens.parigp meta.brackets.parigp punctuation.section.brackets.begin.parigp
## ^ source.parigp meta.parens.parigp meta.brackets.parigp punctuation.section.brackets.end.parigp
## ^ ^ source.parigp meta.parens.parigp punctuation.section.parens.end.parigp
## ^^ source.parigp keyword.operator.logical.parigp
## ^^ source.parigp keyword.operator.logical.parigp
## ^ ^ source.parigp meta.parens.parigp constant.character.whitespace.parigp
## ^^ source.parigp meta.parens.parigp keyword.operator.logical.parigp
## ^^^^^^^^ source.parigp meta.parens.parigp constant.character.escape.parigp

if(!cond,,print("Bad!"));
##^^ source.parigp entity.name.function.builtins.parigp
## ^ source.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^ source.parigp keyword.operator.logical.parigp
## ^^^^ source.parigp meta.parens.parigp variable.name.parigp
## ^^ source.parigp meta.parens.parigp markup.punctuation.parigp
## ^^^^^ source.parigp meta.parens.parigp entity.name.function.builtins.parigp
## ^ source.parigp meta.parens.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^^^^^^ source.parigp meta.parens.parigp meta.parens.parigp constant.character.escape.parigp
## ^ source.parigp meta.parens.parigp meta.parens.parigp punctuation.section.parens.end.parigp
## ^ source.parigp meta.parens.parigp punctuation.section.parens.end.parigp

(1 >= 1) && (10 <= 11) || (x > 0)
## ^^ source.parigp keyword.operator.comparison.parigp
##^ ^ ^ source.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^ ^ ^^ ^^ ^ source.parigp meta.parens.parigp constant.numeric.int.parigp
## ^^ ^^ ^ source.parigp meta.parens.parigp keyword.operator.comparison.parigp
## ^^ ^^ source.parigp keyword.operator.logical.parigp
## ^ ^ ^ source.parigp meta.parens.parigp punctuation.section.parens.end.parigp
## ^^ source.parigp keyword.operator.logical.parigp
## ^^ source.parigp keyword.operator.comparison.parigp
## ^^ source.parigp keyword.operator.logical.parigp
## ^ source.parigp keyword.operator.comparison.parigp

y < 0
##^ source.parigp variable.name.parigp
## ^ source.parigp keyword.operator.comparison.parigp
## ^ source.parigp constant.numeric.int.parigp

x = 10;
##^ source.parigp variable.name.parigp
## ^ source.parigp keyword.operator.assignment.parigp
## ^^ source.parigp constant.numeric.int.parigp
## ^ source.parigp markup.punctuation.parigp

[1..100]
##^ source.parigp meta.brackets.parigp punctuation.section.brackets.begin.parigp
## ^ ^^^ source.parigp meta.brackets.parigp constant.numeric.int.parigp
## ^^ source.parigp keyword.operator.range.parigp
## ^ source.parigp meta.brackets.parigp punctuation.section.brackets.end.parigp

[1, 2, 3; 4, 5, 6]~
##^ source.parigp meta.brackets.parigp punctuation.section.brackets.begin.parigp
## ^ ^ ^ ^ ^ ^ source.parigp meta.brackets.parigp constant.numeric.int.parigp
## ^ ^ ^ ^ ^ source.parigp meta.brackets.parigp markup.punctuation.parigp
## ^ source.parigp meta.brackets.parigp punctuation.section.brackets.end.parigp
## ^ source.parigp keyword.operator.transpose.parigp


[('x^2 + 1)', 1; 1, 'x]'
## ^ source.parigp keyword.operator.derivative.parigp
##^ source.parigp meta.brackets.parigp punctuation.section.brackets.begin.parigp
## ^ source.parigp meta.brackets.parigp meta.parens.parigp punctuation.section.parens.begin.parigp
## ^^ source.parigp meta.brackets.parigp meta.parens.parigp variable.name.parigp
## ^ ^ source.parigp meta.brackets.parigp meta.parens.parigp constant.numeric.int.parigp
## ^ source.parigp meta.brackets.parigp meta.parens.parigp punctuation.section.parens.end.parigp
## ^ source.parigp meta.brackets.parigp keyword.operator.derivative.parigp
## ^ ^ ^ source.parigp meta.brackets.parigp markup.punctuation.parigp
## ^ ^ ^ source.parigp meta.brackets.parigp constant.character.whitespace.parigp
## ^^ source.parigp meta.brackets.parigp variable.name.parigp
## ^ source.parigp meta.brackets.parigp punctuation.section.brackets.end.parigp
## ^ source.parigp keyword.operator.derivative.parigp

0 comments on commit d00c963

Please sign in to comment.