All Projects → doganulus → montre

doganulus / montre

Licence: GPL-3.0 license
The original timed regular expression matcher over temporal behaviors

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to montre

CVparser
CVparser is software for parsing or extracting data out of CV/resumes.
Stars: ✭ 28 (+100%)
Mutual labels:  pattern-matching, regular-expression
Nanomatch
Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but without support for extended globs (extglobs), posix brackets or braces, and with complete Bash 4.3 wildcard support: ("*", "**", and "?").
Stars: ✭ 79 (+464.29%)
Mutual labels:  pattern-matching, regular-expression
moar
Deterministic Regular Expressions with Backreferences
Stars: ✭ 19 (+35.71%)
Mutual labels:  regular-expression, regex-engine
LearningReIn30Mins
正则表达式30分钟入门
Stars: ✭ 20 (+42.86%)
Mutual labels:  regular-expression
chemin
🥾 A type-safe pattern builder & route matching library written in TypeScript
Stars: ✭ 37 (+164.29%)
Mutual labels:  pattern-matching
path-to-regexp-php
PHP port of https://github.com/pillarjs/path-to-regexp
Stars: ✭ 21 (+50%)
Mutual labels:  regular-expression
sweet-egison
Haskell library for non-deterministic pattern matching
Stars: ✭ 15 (+7.14%)
Mutual labels:  pattern-matching
pcre-heavy
A Haskell regular expressions library that doesn't suck | now on https://codeberg.org/valpackett/pcre-heavy
Stars: ✭ 52 (+271.43%)
Mutual labels:  regular-expression
regexp-expand
Show the ELisp regular expression at point in rx form.
Stars: ✭ 18 (+28.57%)
Mutual labels:  regular-expression
RE2RNN
Source code for the EMNLP 2020 paper "Cold-Start and Interpretability: Turning Regular Expressions intoTrainable Recurrent Neural Networks"
Stars: ✭ 96 (+585.71%)
Mutual labels:  regular-expression
regex
Regular expressions for Prolog
Stars: ✭ 16 (+14.29%)
Mutual labels:  regular-expression
regexm
A Rust macro for writing regex pattern matching.
Stars: ✭ 46 (+228.57%)
Mutual labels:  pattern-matching
Regex
🔤 Swifty regular expressions
Stars: ✭ 311 (+2121.43%)
Mutual labels:  regular-expression
grime
A language for matching two-dimensional patterns, based on Boolean grammars.
Stars: ✭ 13 (-7.14%)
Mutual labels:  pattern-matching
termco
Regular Expression Counts of Terms and Substrings
Stars: ✭ 24 (+71.43%)
Mutual labels:  regular-expression
doi-regex
Regular expression for matching DOIs
Stars: ✭ 28 (+100%)
Mutual labels:  regular-expression
unix-programming-and-regular-expressions-workshop
A workshop on Unix Programming Principles using tools such as grep, sed, awk, shell programming and regular expressions
Stars: ✭ 25 (+78.57%)
Mutual labels:  regular-expression
BUFFY
Back Up Files For You
Stars: ✭ 19 (+35.71%)
Mutual labels:  regular-expression
RegexReplacer
A flexible tool to make complex replacements with regular expression
Stars: ✭ 38 (+171.43%)
Mutual labels:  regular-expression
cregex
A small implementation of regular expression matching engine in C
Stars: ✭ 72 (+414.29%)
Mutual labels:  regular-expression

montre

A timed regular expression matcher

Usage

montre [OPTIONS ...] PATTERN [FILE]

Options

-b, --offline              Offline Mode (Batch)
-e, --expr=PATTERN         Use PATTERN for matching
-f, --filename=FILE        Use FILE for matching
-i, --online               Online Mode (Incremental)
-h, --help                 Display this information
-o, --output=FILE          Place the output into FILE (Default: stdout)

    --output-type=TYPE     Supported types are <end|zone>
    --syntax-help          Display the syntax of timed regular expressions
    --version              Version Information

Syntax of Timed Regular Expressions

Atom = p                   (Propositional Symbol)
     : !Atom               (Negation)
     : Atom1 && Atom2      (Conjunction)
     : Atom1 || Atom2      (Disjunction)

Expr = Atom                (Atomic Expression)
     : <:Atom              (Begin-anchored)
     : Atom:>              (End-anchored)
     : <:Atom:>            (BeginEnd-anchored)
     : Expr1 ; Expr2       (Concatenation)
     : Expr1 | Expr2       (Union)
     : Expr1 & Expr2       (Intersection)
     : Expr1 % (i,j)       (Time Restriction)
     : Expr1 *             (Zero-or-more Repetition)
     : Expr1 +             (One-or-more Repetition)
     : (Expr)              (Grouping)

Installation

Ubuntu LTS 14.04 64-bit is the recommended platform.

Requirements

  • GNU C/C++ and the corresponding libraries.
  • Pure Programming Language:
  • pkg-config

Instructions

If you have problems with permissions don't forget to prefix with sudo

  1. Clone the Montre repository:
git clone https://github.com/doganulus/montre
cd montre
  1. Build and install Montre:
make && make install

It will install Montre with the default prefix /usr/local. You can modify Makefile if you would like to install to a custom location.

Running Montre in Docker

Docker provides an alternative (and easier) way for people that want to run Montre without needing to install all dependencies. If Docker is not installed on your machine, you can install using these instructions. Note that you may need sudo for docker commands below. Many thanks to @mibarg for preparing the Dockerfile.

  1. Pull the Montre docker image.
docker pull doganulus/montre:latest
  1. Start a command prompt inside the container.
docker run -it doganulus/montre:latest /bin/bash
  1. Do some timed pattern matching using montre!
montre '(p;q)%(3,4)' montre/examples/my_sym_beh.txt

Tutorial

We have used Montre to find all sprints performed by a player in a real soccer match. See the tutorial Finding Sprints.

Documentation

  • Timed Pattern Matching. Dogan Ulus, Thomas Ferrere, Eugene Asarin and Oded Maler. FORMATS'14.
  • Online Timed Pattern Matching using Derivatives. Dogan Ulus, Thomas Ferrere, Eugene Asarin and Oded Maler. TACAS'16.
  • Montre: A Tool for Monitoring Timed Regular Expressions. Dogan Ulus. CAV'17.
  • Pattern Matching with Time: Theory and Applications. Dogan Ulus. PhD Thesis. 2018.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].