Skip to content

Commit

Permalink
Specialized entity names
Browse files Browse the repository at this point in the history
  • Loading branch information
rkoeninger committed May 11, 2017
1 parent fc468df commit 8ecd362
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
12 changes: 6 additions & 6 deletions Shen.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ repository:
special:
patterns:
- name: keyword.control
match: (?<=^|[\s()\[\]{}])(and|or|if|do|lambda|freeze|let|cond|simple-error|error|trap-error|where|package|defun|/.|->|<-|-->|<--|:=|define|defmacro|defcc|defprolog)(?=$|[\s;()\[\]{}])
match: (?<=^|[\s()\[\]{}])(and|or|if|do|lambda|freeze|let|cond|case|trap-error|where|package|defun|/.|->|<-|-->|<--|:=|define|defmacro|defcc|defprolog)(?=$|[\s;()\[\]{}])

standard:
patterns:
Expand All @@ -98,20 +98,20 @@ repository:
name: entity.name.function
match: (?<=defmacro\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])
- comment: Yacc Names
name: entity.name.function
name: entity.name.tag
match: (?<=defcc\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])
- comment: Prolog Names
name: entity.name.function
match: (?<=defprolog\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])
- comment: Package Names
name: entity.name.function
name: entity.name.section
match: (?<=package\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])
- comment: Local Variables
name: variable.language
match: (?<=^|[\s()\[\]{}])([A-Z][^\s()\[\]]*)(?=$|[\s;()\[\]{}])
# - comment: Yacc Rule
# name: variable.other
# match: (?<=^|[\s()\[\]])(<[^\s()\[\]]*>)(?=$|[\s;()\[\]])
- comment: Yacc Rule
name: entity.name.tag
match: (?<=^|[\s()\[\]])(<[^\s()\[\]]*>)(?=$|[\s;()\[\]])
# - comment: Idle Symbol
# name: constant.language
# match: (?<=^|[\s)\[\]])([^A-Z\s()\[\]\|][^\s()\[\]]*)(?=$|[\s;()\[\]])
Expand Down
14 changes: 11 additions & 3 deletions Shen.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
<array>
<dict>
<key>match</key>
<string>(?&lt;=^|[\s()\[\]{}])(and|or|if|do|lambda|freeze|let|cond|simple-error|error|trap-error|where|package|defun|/.|-&gt;|&lt;-|--&gt;|&lt;--|:=|define|defmacro|defcc|defprolog)(?=$|[\s;()\[\]{}])</string>
<string>(?&lt;=^|[\s()\[\]{}])(and|or|if|do|lambda|freeze|let|cond|case|trap-error|where|package|defun|/.|-&gt;|&lt;-|--&gt;|&lt;--|:=|define|defmacro|defcc|defprolog)(?=$|[\s;()\[\]{}])</string>
<key>name</key>
<string>keyword.control</string>
</dict>
Expand Down Expand Up @@ -260,7 +260,7 @@
<key>match</key>
<string>(?&lt;=defcc\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])</string>
<key>name</key>
<string>entity.name.function</string>
<string>entity.name.tag</string>
</dict>
<dict>
<key>comment</key>
Expand All @@ -276,7 +276,7 @@
<key>match</key>
<string>(?&lt;=package\s)([^\s()\[\]{}]*)(?=$|[\s;()\[\]{}])</string>
<key>name</key>
<string>entity.name.function</string>
<string>entity.name.section</string>
</dict>
<dict>
<key>comment</key>
Expand All @@ -286,6 +286,14 @@
<key>name</key>
<string>variable.language</string>
</dict>
<dict>
<key>comment</key>
<string>Yacc Rule</string>
<key>match</key>
<string>(?&lt;=^|[\s()\[\]])(&lt;[^\s()\[\]]*&gt;)(?=$|[\s;()\[\]])</string>
<key>name</key>
<string>entity.name.tag</string>
</dict>
</array>
</dict>
</dict>
Expand Down
18 changes: 10 additions & 8 deletions example.shen
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
(do
(set *language* (value *custom*))
(trap-error
(simple-error "whoops!")
(do (simple-error "whoops!") (error "oh, no!"))
(/. E (print (error-to-string E) (stoutput))))
skip))

Expand All @@ -40,13 +40,15 @@
:= [<patterns> [where <guard> [choicepoint! <action>]]];)

(define strings ->
(do
(output "~%Shen, copyright c#123; 2010-2015 Mark Tarver~%")
(output "www.shenlanguage.org, ~A~%"
(value *version*))
(output "~%port ~A ported by ~A~%"
(value *port*)
(value *porters*))))
(case
(= X (and Y Z))
(output "~%Shen, copyright c#123; 2010-2015 Mark Tarver~%")
(not (< Qwe Asd))
(output "www.shenlanguage.org, ~A~%" (value *version*))
true
(output "~%port ~A ported by ~A~%"
(value *port*)
(value *porters*))))

(defprolog mem
X [X | _] <--;
Expand Down

0 comments on commit 8ecd362

Please sign in to comment.