all name
이 함수는 name이라는 메타클래스의 모든 인스턴스를 리턴합니다. 예를 들어, 모든 "Class"는 메타클래스 Class의 모든 인스턴스를 리턴합니다.
alternation (str, alt) ≡ str |=> alt ≡ if str <> "" then str else alt
str은 빈 문자열이 아니며, str을 리턴합니다. 그렇지 않으면 alt를 리턴합니다.
alternation ("abc", "def") ⇒ abc
alternation ("", "def") ⇒ def
attribute : string x object → string
$ : string x object → string
attribute (name, obj)
이 함수는 obj의 name이라는 속성 값을 리턴합니다. obj의 메타클래스에 name이라는 속성이 없는 경우 실행 오류가 발생합니다. $에 대한 첫 번째 매개변수는 큰따옴표로 닫히지 않지만 attribute에 대한 첫 번째 매개변수는 큰따옴표로 닫힙니다.
함수는 속성 값을 항상 문자열로 리턴합니다. 그러나 메타 모델의 속성은 integer, real, boolean 및 다양한 열거 중 하나입니다. 그러나 object 유형이 모든 메타클래스의 인스턴스를 둘러싸는 경우 가장 안전한 가정이 작성되므로 attribute가 항상 문자열을 리턴합니다. 기본적으로 메타 모델에 대해 object 유형이 지정되지 않습니다. 문자열 값이 항상 리턴되지만 정보는 손실되지 않습니다. 리턴된 문자열은 변환 연산자 중 하나를 사용하여 항상 적절한 유형으로 변환됩니다. 열거되는 속성에 대한 예외만 발생합니다. 열거는 열거를 구성하는 열거자의 텍스트 이름 값과 함께 문자열과 같이 처리됩니다.
attribute ("name", aClass) ≡ $name of aClass ⇒ Tree
attribute ("type", anOperation) ⇒ std::string
$name ≡ $name of current ⇒ Leaf
boolean $isAbstract of aClass ⇒ true
attribute (name, ocoll) ≡ $name′ of ocoll ≡ comma map {$name} over ocoll
이 함수는 ocoll에서 각 오브젝트의 name이라는 속성 값에서 형성된 문자열을 쉼표로 구분된 값으로 리턴합니다. ocoll에 오브젝트가 없는 경우 빈 문자열이 리턴됩니다. ocoll에 obj라는 오브젝트가 하나만 있는 경우 attribute(name 및 ocoll)가 attribute(name 및 obj)와 동일합니다. ocoll의 오브젝트 메타클래스에 name이라는 속성이 없는 경우 실행 오류가 발생합니다.
attribute ("name", all "Class") ⇒ Tree, Branch, Leaf
attribute ("type", all "Operation") ⇒ grow
$name of all "Class" ⇒ Tree, Branch, Leaf
class obj
이 함수는 obj의 메타클래스 이름을 리턴합니다.
class aClass ⇒ Class class model ⇒ Model
comma scoll
이 함수는 scoll의 모든 문자열 연결을 쉼표로 구분된 문자열로 리턴합니다.
concat scoll
이 함수는 scoll의 모든 문자열 연결을 리턴합니다.
find (re, s)
이 함수는 정규식 re와 일치하는 s의 첫 번째 하위 문자열을 리턴합니다. 문자열에 re와 일치하는 s의 하위 문자열이 없는 경우 빈 문자열이 리턴됩니다(λ). 하위 문자열이 일치하는 경우 최대 문자 수가 일치됩니다.
find ('[01]+', "---010111--111") ⇒ 010111
find ('[a-z]+', "--010111") ⇒ λ
first ocoll
이 함수는 ocoll의 첫 번째 오브젝트를 리턴합니다. ocoll이 비어 있는 경우 실행 오류가 발생합니다.
$name of first all "Class" ⇒ Node
match (re, s) ≡ s ~= re′
이 함수는 정규식 re와 일치하는 s의 하위 문자열이 있는 경우 true를 리턴합니다.
match ('[01]+', "abc010111def") ⇒ true
match ('^[01]+$', "abc010111def") ⇒ false
match ('[01]*', "abc") ⇒ true
다른 경우에도 마지막 예제가 적용되는 방법을 참고하십시오. * 종결이 빈 문자열을 허용하고 빈 문자열은 유효한 "abc" 하위 문자열이므로 계속해서 일치됩니다.
object ocoll ≡ only ocoll
아래의 함수 only: object collection Æ object에 대한 항목을 참조하십시오.
only ocoll
이 함수는 첫 번째 오브젝트 및 ocoll의 오브젝트만 리턴합니다. ocoll이 비어 있거나 둘 이상의 오브젝트가 있는 경우 실행 오류가 발생합니다.
$name of only all "Class" ⇒ Node
replace (re, s, r)
이 함수는 r로 대체된 re와 일치하는 첫 번째 하위 문자열과 함께 s와 동일한 문자열을 리턴합니다. re와 일치하는 s의 하위 문자열이 없는 경우 s가 리턴됩니다. 하위 문자열이 일치하는 경우 최대 문자 수가 일치됩니다.
replace ('[01]+', "---010111--111", "A") ⇒ ---A--111
replace ('[a-z]+', "010111", "A") ⇒ 010111
replace_all (re, s, r)
이 함수는 r로 대체된 re와 일치하는 모든 하위 문자열과 함께 s와 동일한 문자열을 리턴합니다. re와 일치하는 s의 하위 문자열이 없는 경우 s가 리턴됩니다. 하위 문자열이 일치하는 경우 최대 문자 수가 일치됩니다.
replace_all ('[01]+', "---010111--111", "A") ⇒ ---A--A
replace_all ('[a-z]+', "010111", "A") ⇒ 010111
다음 예제는
replace_all 키워드와 함께 "%s"의 사용에 대해 보여줍니다. 
replace_all 명령은 쉼표로 구분된 목록을 단락 형식에서 항목이 나열되는 열로 재형식화하는 데 유용합니다. 이 명령을 사용하면 쉼표가 공백으로 바뀌고 목록을 작성하기 위해 줄 바꾸기(\n)가 삽입됩니다.
replace_all (',',comma map {$name + "\n") over
([containedElements]{$metaClass="[metaclass name]"})," ")
reverse ocoll
이 함수는 요소와 함께 ocoll 콜렉션을 반대 순서로 리턴합니다.
$name of (all "Class") ⇒ "Class_0, Class_1, Class_2" $name of (reverse all "Class") ⇒ "Class_2, Class_1, Class_0"
size ocoll
이 함수는 ocoll의 오브젝트 수를 리턴합니다.
size all "Class" ⇒ 27
tolower s
이 함수는 대문자가 소문자로 변경된 s 문자열을 리턴합니다.
tolower "aBcDeF" ⇒ abcdef
toupper s
이 함수는 모든 소문자가 대문자로 변경된 s 문자열을 리턴합니다.
toupper "aBcDeF" ⇒ ABCDEF
trim s ≡ replace ('^[ \t\f\r\n]+', replace ('[ \t\f\r\n]+$', s, ""),
"")
모든 선행 및 후행 공백, 탭, 용지 넘김, 캐리지 리턴 및 제거된 줄 바꾸기와 함께 s 문자열을 리턴합니다.
trim " \tabc\n" ⇒ abc
uid obj
이 함수는 obj에 대한 고유 ID를 리턴합니다. 지정된 모델의 두 오브젝트에서 동일한 ID를 사용할 수 없습니다. 그러나 두 개의 서로 다른 모델의 두 오브젝트에서는 동일한 ID를 사용할 수 있으며 다른 세션 동안 지정된 오브젝트에 다른 ID를 사용할 수 있습니다. ID 문자열에 대한 구조가 없으며 나중에 실제 형식을 변경할 수 있습니다.
uid anObject ⇒ 04240120
unique ocoll
이 함수는 중복 오브젝트가 제거된 상태로 ocoll 콜렉션을 리턴합니다. 고유성은 오브젝트 ID를 기반으로 합니다. 이 함수는 ocoll의 고유 오브젝트에 대한 상대 순서를 유지하지 않습니다.