Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7.25.1 Release #159

Merged
merged 12 commits into from
Feb 18, 2025
Merged

7.25.1 Release #159

merged 12 commits into from
Feb 18, 2025

Conversation

yoav-el-certora
Copy link
Contributor

No description provided.

liav-certora and others added 12 commits January 23, 2025 16:58
	"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
	"name": "CVL",
	"patterns": [
		{
			"include": "#keywords"
		},
		{
			"include": "#strings"
		},
		{
			"include": "#comment"
		},
		{
			"include": "#constant"
		},
		{
			"include": "#operator"
		},
		{
			"include": "#punctuation"
		},
		{
			"include": "#declaration-rule"
		},
		{
			"include": "#declaration-invariant"
		},
		{
			"include": "#declaration-methods"
		}
	],
	"repository": {
		"keywords": {
			"patterns": [{
                "match": "(\\w+)\\(",
                "captures": { "1": {"name": "entity.name.function" }}
            }, {
                "begin": "(rule)\\s+([\\w]*)(\\(([^\\)]*)\\))*[[:space:]]*",
                "beginCaptures": {
                    "1": { "name": "keyword.control.spec" },
                    "2": { "name": "entity.name.function" },
                    "4": {
                        "patterns": [{
                            "include": "$self"
                        }, {
                            "match": "(\\w+),|(\\w+)$",
                            "name": "variable.parameter.spec"
                        }]
                    }
                },
                "end": "\n\\}",
                "patterns": [{
                    "include": "$self"
                }, {
                    "match": "\\w+",
                    "name": "variable.parameter.spec"
                }]
            }, {
				"name": "keyword.control.spec",
				"match": "\\b(rule|invariant|methods|ghost|definition|hook|as|at|summaries|if|else)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(invoke|sinvoke)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(method|calldataarg)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(envfree)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(env|msg|mathint)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(returns|require|assert)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(@withnorevert|@withrevert)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(Sstore|Sload)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(lastStorage|lastReverted)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(@new|@old)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(filtered|forall|havoc|KEY|STORAGE|preserved|requireInvariant|init_state|axiom|assuming|exists)\\b"
			}, {
				"name": "keyword.other.unit.spec",
				"match": "\\b(DISPATCHER|NONDET|UNRESOLVED)\\b"
			}, {
                "name": "entity.name.type.spec",
				"match": "\\b(address|bool|uint\\d*|int\\d*|bytes\\d*)\\b",
                "patterns": [{
                    "name": "variable.parameter",
				    "match": "\\s\\w+"
                }]
			}, {
                "name": "constant.numeric",
                "match": "\\d"
            }]
		},
		"strings": {
			"name": "string.quoted.double.spec",
			"begin": "\"",
			"end": "\"",
			"patterns": [{
				"name": "constant.character.escape.spec",
				"match": "\\\\."
			}, {
                "comment": "s.t. ${foobar}",
                "match": "\\${\\w*}",
                "name": "variable.other.spec"
            }, {
                "comment": "s.t. $foobar",
                "match": "\\$\\w*",
                "name": "variable.other.spec"
            }]
		},
		"constant": {
            "match": "\\b(true|false)\\b",
            "name": "constant.language.boolean"
        },
		"punctuation": {
            "patterns": [
                {
                    "match": ";",
                    "name": "punctuation.terminator.statement"
                },
                {
                    "match": "\\.",
                    "name": "punctuation.accessor"
                },
                {
                    "match": ",",
                    "name": "punctuation.separator"
                },
                {
                    "match": "\\{",
                    "name": "punctuation.brace.curly.begin"
                },
                {
                    "match": "\\}",
                    "name": "punctuation.brace.curly.end"
                },
                {
                    "match": "\\[",
                    "name": "punctuation.brace.square.begin"
                },
                {
                    "match": "\\]",
                    "name": "punctuation.brace.square.end"
                },
                {
                    "match": "\\(",
                    "name": "punctuation.parameters.begin"
                },
                {
                    "match": "\\)",
                    "name": "punctuation.parameters.end"
                }
            ]
        },
		"comment-line": {
            "begin": "//",
            "end": "$",
            "name": "comment.line"
        },
        "comment-block": {
            "begin": "/\\*",
            "end": "\\*/",
            "name": "comment.block"
        },
        "comment": {
            "patterns": [
                { "include": "#comment-line" },
                { "include": "#comment-block" }
            ]
        },
		"operator": {
            "patterns": [
                { "include": "#operator-logic" },
                { "include": "#operator-mapping" },
                { "include": "#operator-arithmetic" },
                { "include": "#operator-binary" },
                { "include": "#operator-assignment" }
            ]
        },
        "operator-logic": {
            "match": "(==|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?)",
            "name": "keyword.operator.logic"
        },
        "operator-mapping": {
            "match": "(=>)",
            "name": "keyword.operator.mapping"
        },
        "operator-arithmetic": {
            "match": "(\\+|\\-|\\/|\\*)",
            "name": "keyword.operator.arithmetic"
        },
        "operator-binary": {
            "match": "(\\^|\\&|\\||<<|>>)",
            "name": "keyword.operator.binary"
        },
        "operator-assignment": {
            "match": "(\\:?=)",
            "name": "keyword.operator.assignment"
        },
		"declaration-invariant": {
            "patterns": [{
                "match": "\\b(invariant)\\s+([A-Za-z_]\\w*)\\b",
                "captures": {
                    "1": { "name": "declaration.type.invariant.spec" },
                    "2": { "name": "entity.name.invariant.spec" }
                }
            }]
		},
		"declaration-methods": {
            "patterns": [{
                "match": "\\b(methods)\\b",
                "captures": {
                    "1": { "name": "declaration.type.methods.spec" }
                }
            }]
        }
	},
	"scopeName": "source.spec"
}z
* split_rules flag example

* added msg

---------

Co-authored-by: yoav-el-certora <[email protected]>
* .

* Update README.md

* Update CVLByExample/Summarization/GhostSummary/GhostSums/ghostSums.spec

Co-authored-by: Nurit Dor <[email protected]>

* convert rul to invariant

---------

Co-authored-by: Nurit Dor <[email protected]>
@yoav-el-certora yoav-el-certora merged commit fd283da into master Feb 18, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants