mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-28 05:50:37 +03:00
200 lines
3.9 KiB
Plaintext
200 lines
3.9 KiB
Plaintext
![]() |
@precedence {
|
|||
|
plus @left minus @left,
|
|||
|
times @left,
|
|||
|
not @right,
|
|||
|
log_equiv @left,
|
|||
|
log_impl @left,
|
|||
|
log_or @left,
|
|||
|
log_and @left,
|
|||
|
set_decart @left set_union @left set_intersect @left set_minus @left set_symminus @left,
|
|||
|
set_bool @right,
|
|||
|
p1, p2
|
|||
|
}
|
|||
|
|
|||
|
@top Expression {
|
|||
|
term_or_logic |
|
|||
|
FunctionDeclaration
|
|||
|
}
|
|||
|
|
|||
|
@skip { space }
|
|||
|
|
|||
|
@tokens {
|
|||
|
space { @whitespace+ }
|
|||
|
ComplexIndex { $[1-9](","$[1-9])* }
|
|||
|
integer { $[0-9]+ }
|
|||
|
emptySet { "∅" }
|
|||
|
integerSet { "Z" }
|
|||
|
|
|||
|
bigPr { "Pr" }
|
|||
|
smallPr { "pr" }
|
|||
|
filter { "Fi" }
|
|||
|
card { "card" }
|
|||
|
bool { "bool" }
|
|||
|
debool { "debool" }
|
|||
|
red { "red" }
|
|||
|
|
|||
|
quantifier { $[∀∃] }
|
|||
|
|
|||
|
Global { $[XCSDAT]$[0-9]+ }
|
|||
|
Function { "F"$[0-9]+ }
|
|||
|
Predicate { "P"$[0-9]+ }
|
|||
|
Radical { "R"$[0-9]+ }
|
|||
|
local { $[_a-zα-ω]($[a-zα-ω])* }
|
|||
|
PrefixR { "R" }
|
|||
|
PrefixI { "I" }
|
|||
|
PrefixD { "D" }
|
|||
|
|
|||
|
"¬"
|
|||
|
"⇔" "⇒" "∨" "&"
|
|||
|
"ℬ"
|
|||
|
"+" "-" "*" "∪" "\\" "∆" "∩" "×"
|
|||
|
"∈" "∉" "⊆" "⊄" "⊂" ">" "≥" "≤" "≠" "="
|
|||
|
":∈" ":="
|
|||
|
|
|||
|
"[" "]"
|
|||
|
"{" "}"
|
|||
|
"(" ")"
|
|||
|
|
|||
|
@precedence { filter bigPr Predicate Function Global Radical PrefixR PrefixI PrefixD }
|
|||
|
@precedence { card bool debool red smallPr local }
|
|||
|
}
|
|||
|
|
|||
|
Index { integer }
|
|||
|
Local {
|
|||
|
!p1 local |
|
|||
|
!p2 local Index
|
|||
|
}
|
|||
|
|
|||
|
Literal { integer | emptySet | integerSet }
|
|||
|
|
|||
|
TextFunction {
|
|||
|
bigPr ComplexIndex |
|
|||
|
smallPr ComplexIndex |
|
|||
|
card | bool | debool | red
|
|||
|
}
|
|||
|
|
|||
|
Filter { filter ComplexIndex }
|
|||
|
|
|||
|
term_or_logic { logic | term }
|
|||
|
|
|||
|
FunctionDeclaration { "[" arg_declaration "]" term_or_logic }
|
|||
|
arg_declaration {
|
|||
|
declaration |
|
|||
|
arg_declaration "," declaration
|
|||
|
}
|
|||
|
declaration { Local "∈" term }
|
|||
|
|
|||
|
logic {
|
|||
|
LogicPredicate |
|
|||
|
logicUnary |
|
|||
|
LogicBinary
|
|||
|
}
|
|||
|
logic_all { logic | logic_par }
|
|||
|
logic_par { "(" logic ")" }
|
|||
|
logic_no_binary {
|
|||
|
LogicPredicate
|
|||
|
logicUnary
|
|||
|
logic_par
|
|||
|
}
|
|||
|
logicUnary {
|
|||
|
PredicateCall { Predicate "[" term_enum "]" } |
|
|||
|
LogicNegation { !not "¬" logic_no_binary } |
|
|||
|
LogicQuantor { quantifier QuantorVariable "∈" term logic_no_binary }
|
|||
|
}
|
|||
|
|
|||
|
LogicPredicate {
|
|||
|
term "∈" term |
|
|||
|
term "∉" term |
|
|||
|
term "⊆" term |
|
|||
|
term "⊄" term |
|
|||
|
term "⊂" term |
|
|||
|
term ">" term |
|
|||
|
term "≥" term |
|
|||
|
term "≤" term |
|
|||
|
term "≠" term |
|
|||
|
term "=" term
|
|||
|
}
|
|||
|
|
|||
|
LogicBinary {
|
|||
|
logic_all !log_equiv "⇔" logic_all |
|
|||
|
logic_all !log_impl "⇒" logic_all |
|
|||
|
logic_all !log_or "∨" logic_all |
|
|||
|
logic_all !log_and "&" logic_all
|
|||
|
}
|
|||
|
|
|||
|
QuantorVariable { Variable | quant_var_enum }
|
|||
|
quant_var_enum { QuantorVariable "," Variable }
|
|||
|
Variable { Local | "(" VariableComposite ")" }
|
|||
|
VariableComposite { var_all "," Variable }
|
|||
|
var_all { Variable | VariableComposite }
|
|||
|
|
|||
|
term {
|
|||
|
Literal | Local | Global | Radical |
|
|||
|
BinaryOperation |
|
|||
|
typed_constructors |
|
|||
|
FunctionCall |
|
|||
|
TextFunctionExpression
|
|||
|
}
|
|||
|
FunctionCall { Function "[" term_enum "]" }
|
|||
|
|
|||
|
TextFunctionExpression {
|
|||
|
TextFunction "(" term ")" |
|
|||
|
Filter "[" term_enum "]" "(" term ")"
|
|||
|
}
|
|||
|
|
|||
|
BinaryOperation {
|
|||
|
term !plus "+" term |
|
|||
|
term !minus "-" term |
|
|||
|
term !times "*" term |
|
|||
|
term !set_union "∪" term |
|
|||
|
term !set_minus "\\" term |
|
|||
|
term !set_symminus "∆" term |
|
|||
|
term !set_intersect "∩" term |
|
|||
|
term !set_decart "×" term |
|
|||
|
"(" BinaryOperation ")"
|
|||
|
}
|
|||
|
|
|||
|
typed_constructors {
|
|||
|
Enumeration |
|
|||
|
Tuple |
|
|||
|
Boolean |
|
|||
|
Declarative |
|
|||
|
Imperative |
|
|||
|
Recursion
|
|||
|
}
|
|||
|
Enumeration { "{" term_enum "}"}
|
|||
|
Tuple { "(" term_enum_min2 ")"}
|
|||
|
Boolean {
|
|||
|
!set_bool "ℬ" "(" term ")" |
|
|||
|
!set_bool "ℬ" Boolean
|
|||
|
}
|
|||
|
|
|||
|
term_enum { term | term_enum_min2 }
|
|||
|
term_enum_min2 { term_enum "," term }
|
|||
|
|
|||
|
Declarative {
|
|||
|
"{" Local "∈" term "|" logic "}" |
|
|||
|
PrefixD "{" Variable "∈" term "|" logic "}"
|
|||
|
}
|
|||
|
Recursion {
|
|||
|
PrefixR "{" Variable ":=" term ("|" logic)? "|" term "}"
|
|||
|
}
|
|||
|
Imperative {
|
|||
|
PrefixI "{" term "|" ImperativeBlocks "}"
|
|||
|
}
|
|||
|
ImperativeBlocks {
|
|||
|
imp_block |
|
|||
|
ImperativeBlocks ";" imp_block
|
|||
|
}
|
|||
|
imp_block {
|
|||
|
ImperativeIteration |
|
|||
|
ImperativeAssignment |
|
|||
|
ImperativeCondition
|
|||
|
}
|
|||
|
ImperativeIteration { Local ":∈" term }
|
|||
|
ImperativeAssignment { Local ":=" term }
|
|||
|
ImperativeCondition { logic }
|
|||
|
|
|||
|
@detectDelim
|
|||
|
|
|||
|
@external propSource highlighting from "./highlight.ts"
|