diff --git a/scripts/dynare.el b/scripts/dynare.el index aec37fe77669cfa07b90d7f015e46bf90c27e45e..9a505c6f1a122d6d896ed00150465b4caad5e9fd 100644 --- a/scripts/dynare.el +++ b/scripts/dynare.el @@ -38,6 +38,7 @@ ;; - basically deactivate the mode within verbatim blocks? ;; - blocks templates "model/end", "initval/end", etc. ;; - functions to insert main keywords, with shortcuts in the keymap +;; - make font-locking case insensitive (as is Dynare lexer) (defgroup dynare nil "Editing Dynare mod files." @@ -87,7 +88,7 @@ ;; Also include "verbatim" in this list (defvar dynare-blocks '("model" "steady_state_model" "initval" "endval" "histval" "shocks" - "shock_groups" "mshocks" "estimated_params" "epilogue" "priors" + "shock_groups" "init2shocks" "mshocks" "estimated_params" "epilogue" "priors" "estimated_param_init" "estimated_params_bounds" "osr_params_bounds" "observation_trends" "optim_weights" "homotopy_setup" "conditional_forecast_paths" "svar_identification" "moment_calibration" @@ -95,11 +96,12 @@ "verbatim") "Dynare block keywords.") -;; Mathematical functions used in model equations (see "expression" in Bison file) +;; Mathematical functions and operators used in model equations (see "hand_side" in Bison file) (defvar dynare-functions - '("exp" "log" "ln" "log10" "sin" "cos" "tan" "asin" "acos" "atan" "sqrt" - "abs" "sign" "max" "min" "normcdf" "normpdf" "erf") - "Dynare mathematical functions.") + '("expectation" "var_expectation" "pac_expectation" "exp" "diff" "adl" "log" + "ln" "log10" "sin" "cos" "tan" "asin" "acos" "atan" "sqrt" "cbrt" "abs" + "sign" "max" "min" "normcdf" "normpdf" "erf" "steady_state") + "Dynare mathematical functions and operators.") (defvar dynare-constants '("nan" "inf") @@ -110,8 +112,13 @@ "Dynare attributes for on-the-fly type declarations.") (defvar dynare-macro-keywords - '("in" "length" "line" "define" "echomacrovars" "save" "for" "endfor" "ifdef" - "ifndef" "if" "else" "endif" "echo" "error" "include" "includepath") + '("line" "include" "includepath" "define" "echo" "error" "if" "ifdef" "ifndef" + "elseif" "else" "endif" "for" "endfor" "echomacrovars" "in" "when" "save" + "true" "false" "exp" "log" "ln" "log10" "sin" "cos" "tan" "asin" "acos" + "atan" "sqrt" "cbrt" "sign" "max" "min" "floor" "ceil" "trunc" "mod" "sum" + "erf" "erfc" "gamma" "lgamma" "round" "length" "normpdf" "normcdf" "isempty" + "isboolean" "isreal" "isstring" "istuple" "isarray" "bool" "real" "string" + "tuple" "array" "defined" "nan" "inf") "Dynare macroprocessor keywords.") (defvar dynare-font-lock-keywords