Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples
Left Hand Pointer

pattern

Annotations

Right Hand Pointer

alternation

Introduced in the 1995 ANSI M[UMPS] language standard.

This metalanguage symbol represents a specification of multiple alternate patterns that may occur to satisfy part of a pattern match specification.

A list of alternate patterns looks like a list of pattern atoms (separated by commas) enclosed in parentheses.

Modification in a future M[UMPS] language standard.

A list of alternate patterns looks like a list of pattern specifications (separated by commas) enclosed in parentheses.

Note: The limitation to pattern atoms in the 1995 ANSI M[UMPS] language standard was unintended.

charspec

Approved for inclusion in a future M[UMPS] language standard.

This metalanguage symbol represents a "pattern range". A pattern range is indicated by a specification enclosed in square brackets. Such a specification looks like either a single constant, or two constants separated by a colon. A strconst (string-constant), in this context, is either a string literal, or a reference to the intrinsic function $Char.

patatom

Introduced in the 1977 ANSI M[UMPS] language standard.

This metalanguage symbol represents one part of a pattern to be matched. A specification consists of either a number (intlit) or a period followed by either a string literal or a pattern code (patcode).

Valid specifications are:

1"string"
9"THIS SPECIFIC TEXT"
3E
.A
5N

Addition in the 1984 ANSI M[UMPS] language standard.

Ranges of occurrences are introduced.

Valid specifications are:

1.5N
2.7"This String"
.3A
6.N

Additions in a future M[UMPS] language standard.

Alternative options for one pattern atom are introduced (see metalanguage symbol alternation.

Valid specifications look like:

1.5(2A,3N,1"Xyz")

A pattern-match operation may also be used to extract the value of the sub-string that matches a specific pattern and store the value of this sub-string into a variable. In this context, a pattern atom may end with a name of a variable, enclosed in parentheses, e.g. If X?4N(ITEM)3A.

patcode

Introduced in the 1977 ANSI M[UMPS] language standard.

This metalanguage symbol represents a code that identifies a certain class of characters. Valid codes are A, C, E, L, N, P and U.

Addition in the 1995 ANSI M[UMPS] language standard.

Implementors and applications can define their own pattern codes by supplying a pattern-check algorithm in the structured system variable ^$Character(charset,"PATTERN",newcode).

Additions in a future M[UMPS] language standard.

Patterns may also be "negated", i.e. a string that matches a negated pattern matches anything but the pattern that is being negated.

A pattern code may also be a "pattern range". A pattern range is indicated by a charspec specification enclosed in square brackets. Such a specification looks like either a single constant, or two constants separated by a colon. A strconst (string-constant), in this context, is either a string literal, or a reference to the intrinsic function $Char.

patgrp

Approved for inclusion in a future M[UMPS] language standard.

This metalanguage symbol represents a group of patatoms (pattern-atoms).

Such a group may occur in the context of an alternation, which is a specification of a number of patterns, one of which should be matched by the string that is being compared to this list of possible patterns.

patnonY

Introduced in the 1995 ANSI M[UMPS] language standard.

This metalanguage symbol represents any character that is valid in an identifier (see the metalanguage symbol ident) and that is not the character Y ($Char(89) or "Y").

patnonYZ

Introduced in the 1995 ANSI M[UMPS] language standard.

This metalanguage symbol represents any character that is valid in an identifier (see the metalanguage symbol ident) and that is not one of the the character Y ($Char(89) or "Y") or Z ($Char(90) or "Z").

patnonZ

Introduced in the 1995 ANSI M[UMPS] language standard.

This metalanguage symbol represents any character that is valid in an identifier (see the metalanguage symbol ident) and that is not the character Z ($Char(90) or "Z").

patsetdest

Approved for inclusion in a future M[UMPS] language standard.

This metalanguage symbol represents the destination where the value of a sub-string may be stored. Such a destination looks like the name of a variable, enclosed in parentheses.

A pattern-match operation may be used to extract the value of the sub-string that matches a specific pattern and store the value of this sub-string into a variable. In this context, a pattern atom may end with a name of a variable, enclosed in parentheses, e.g. If X?4N(ITEM)3A.

patstr

Approved for inclusion in a future M[UMPS] language standard.

This metalanguage symbol represents either a string literal or a "negated" string literal. This metalanguage symbol was added to facilitate the definition of "negated pattern matching".

A string literal is "negated" when it is preceded by the unary operator "not" (apostrophe).

pattern

Introduced in the 1977 ANSI M[UMPS] language standard.

This metalanguage symbol represents the specification of a text pattern. A pattern specification is either an indefinite repetition of pattern atoms (see the metalanguage symbol patatom), or an indirection operator followed by an expression that evaluates to a pattern specification.

repcount

Introduced in the 1984 ANSI M[UMPS] language standard.

This metalanguage symbol represents the number of times that a certain pattern element may occur in the total pattern.

Examples:

12 exactly 12
. any number
5. at least 5
.9 at most 9

strconst

Approved for inclusion in a future M[UMPS] language standard.

This metalanguage symbol represents a string constant. A string constant appears in the context of "pattern ranges", and looks like either a string literal, or a reference to the intrinsic function $Char.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2018 MUMPS Development Committee;
Copyright © Examples: 1995-2018 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2018 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 13-Sep-2014, 17:36:16 .

For comments, contact Ed de Moel (demoel@jacquardsystems.com)