mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	[Add Language] Jolie (#3574)
* added support for Jolie language * added support for Jolie language * added samples for Jolie
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -836,3 +836,6 @@ | ||||
| [submodule "vendor/grammars/marko-tmbundle"] | ||||
| 	path = vendor/grammars/marko-tmbundle | ||||
| 	url = https://github.com/marko-js/marko-tmbundle | ||||
| [submodule "vendor/grammars/language-jolie"] | ||||
| 	path = vendor/grammars/language-jolie | ||||
| 	url = https://github.com/fmontesi/language-jolie | ||||
|   | ||||
| @@ -410,6 +410,8 @@ vendor/grammars/language-jison: | ||||
| - source.jison | ||||
| - source.jisonlex | ||||
| - source.jisonlex-injection | ||||
| vendor/grammars/language-jolie: | ||||
| - source.jolie | ||||
| vendor/grammars/language-jsoniq: | ||||
| - source.jq | ||||
| - source.xq | ||||
|   | ||||
| @@ -2041,6 +2041,17 @@ Jison Lex: | ||||
|   tm_scope: source.jisonlex | ||||
|   ace_mode: text | ||||
|   language_id: 406395330 | ||||
| Jolie: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - ".ol" | ||||
|   - ".iol" | ||||
|   interpreters: | ||||
|   - jolie | ||||
|   color: "#843179" | ||||
|   ace_mode: text | ||||
|   tm_scope: source.jolie | ||||
|   language_id: 998078858 | ||||
| Julia: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   | ||||
							
								
								
									
										37
									
								
								samples/Jolie/common.iol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								samples/Jolie/common.iol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| include "types/Binding.iol" | ||||
|  | ||||
| constants { | ||||
| 	Location_Exam = "socket://localhost:8000" | ||||
| } | ||||
|  | ||||
| type StartExamRequest:void { | ||||
| 	.examName:string | ||||
| 	.studentName:string | ||||
| 	.student:Binding | ||||
| } | ||||
|  | ||||
| type MakeQuestionRequest:void { | ||||
| 	.question:string | ||||
| 	.examName:string | ||||
| 	.studentName:string | ||||
| } | ||||
|  | ||||
| type DecisionMessage:void { | ||||
| 	.studentName:string | ||||
| 	.examName:string | ||||
| } | ||||
|  | ||||
| interface ExamInterface { | ||||
| OneWay: | ||||
| 	startExam(StartExamRequest), | ||||
| 	pass(DecisionMessage), fail(DecisionMessage) | ||||
| RequestResponse: | ||||
| 	makeQuestion(MakeQuestionRequest)(int) | ||||
| } | ||||
|  | ||||
| interface StudentInterface { | ||||
| OneWay: | ||||
| 	sendMessage(string) | ||||
| RequestResponse: | ||||
| 	makeQuestion(MakeQuestionRequest)(int) | ||||
| } | ||||
							
								
								
									
										39
									
								
								samples/Jolie/exam.ol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								samples/Jolie/exam.ol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| include "common.iol" | ||||
|  | ||||
| cset { | ||||
| studentName: | ||||
| 	StartExamRequest.studentName | ||||
| 	DecisionMessage.studentName | ||||
| 	MakeQuestionRequest.studentName, | ||||
| examName: | ||||
| 	StartExamRequest.examName | ||||
| 	DecisionMessage.examName | ||||
| 	MakeQuestionRequest.examName | ||||
| } | ||||
|  | ||||
| execution { concurrent } | ||||
|  | ||||
| outputPort Student { | ||||
| Interfaces: StudentInterface | ||||
| } | ||||
|  | ||||
| inputPort ExamInput { | ||||
| Location: Location_Exam | ||||
| Protocol: sodep | ||||
| Interfaces: ExamInterface | ||||
| } | ||||
|  | ||||
| main | ||||
| { | ||||
| 	startExam( examRequest ); | ||||
| 	Student << examRequest.student; | ||||
| 	makeQuestion( question )( answer ) { | ||||
| 		makeQuestion@Student( question )( answer ) | ||||
| 	}; | ||||
| 	[ pass( message ) ] { | ||||
| 		sendMessage@Student( "You passed!" ) | ||||
| 	} | ||||
| 	[ fail( message ) ] { | ||||
| 		sendMessage@Student( "You failed!" ) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										26
									
								
								samples/Jolie/examiner.ol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/Jolie/examiner.ol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| include "common.iol" | ||||
| include "ui/swing_ui.iol" | ||||
| include "console.iol" | ||||
|  | ||||
| outputPort Exam { | ||||
| Location: Location_Exam | ||||
| Protocol: sodep | ||||
| Interfaces: ExamInterface | ||||
| } | ||||
|  | ||||
| main | ||||
| { | ||||
| 	question.studentName = "John"; | ||||
| 	question.examName = "SPLG"; | ||||
| 	question.question = "Random question"; | ||||
| 	makeQuestion@Exam( question )( answer ); | ||||
| 	showYesNoQuestionDialog@SwingUI( "Do you want to accept answer " + answer + " ?" )( decision ); | ||||
|  | ||||
| 	message.studentName = "John"; | ||||
| 	message.examName = "SPLG"; | ||||
| 	if ( decision == 0 ) { | ||||
| 		pass@Exam( message ) | ||||
| 	} else { | ||||
| 		fail@Exam( message ) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										84
									
								
								samples/Jolie/hanoi.ol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								samples/Jolie/hanoi.ol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| // https://github.com/jolie/website/blob/master/docs/documentation/locations/code/local.ol | ||||
|  | ||||
| include "runtime.iol" | ||||
| include "string_utils.iol" | ||||
|  | ||||
| type HanoiRequest: void{ | ||||
|   .src: string | ||||
|   .aux: string | ||||
|   .dst: string | ||||
|   .n: int | ||||
|   .sid?: string | ||||
| } | ||||
|  | ||||
| type HanoiReponse: void { | ||||
|   .move?: string | ||||
| } | ||||
|  | ||||
| interface LocalOperations{ | ||||
|   RequestResponse: | ||||
|     hanoiSolver( HanoiRequest )( HanoiReponse ) | ||||
| } | ||||
|  | ||||
| interface ExternalOperations{ | ||||
|   RequestResponse: | ||||
|     hanoi( HanoiRequest )( string ) | ||||
| } | ||||
|  | ||||
| outputPort Self{ | ||||
|   Interfaces: LocalOperations | ||||
| } | ||||
|  | ||||
| inputPort Self { | ||||
|   Location: "local" | ||||
|   Interfaces: LocalOperations | ||||
| } | ||||
|  | ||||
| inputPort PowerService { | ||||
|   Location: "socket://localhost:8000" | ||||
|   Protocol: http{ | ||||
|     .format = "html" | ||||
|   } | ||||
|   Interfaces: ExternalOperations | ||||
| } | ||||
|  | ||||
| execution { concurrent } | ||||
|  | ||||
| init | ||||
| { | ||||
|   getLocalLocation@Runtime()( Self.location ) | ||||
| } | ||||
|  | ||||
| main | ||||
| { | ||||
|   [ hanoi( request )( response ){ | ||||
|     getRandomUUID@StringUtils()(request.sid); | ||||
|     hanoiSolver@Self( request )( subRes ); | ||||
|     response = subRes.move | ||||
|   }]{ nullProcess } | ||||
|  | ||||
|   [ hanoiSolver( request )( response ){ | ||||
|     if ( request.n > 0 ){ | ||||
|       subReq.n = request.n; | ||||
|       subReq.n--; | ||||
|       with( request ){ | ||||
|         subReq.aux = .dst; | ||||
|         subReq.dst = .aux; | ||||
|         subReq.src = .src; | ||||
|         subReq.sid = .sid | ||||
|       }; | ||||
|       hanoiSolver@Self( subReq )( response ); | ||||
|       response.move +=  "<br>" +  | ||||
|                 ++global.counters.(request.sid) +  | ||||
|                 ") Move from " + request.src + | ||||
|                 " to " + request.dst + ";"; | ||||
|       with ( request ){ | ||||
|         subReq.src = .aux; | ||||
|         subReq.aux = .src; | ||||
|         subReq.dst = .dst | ||||
|       }; | ||||
|       hanoiSolver@Self( subReq )( subRes ); | ||||
|       response.move += subRes.move | ||||
|     } | ||||
|   }]{ nullProcess } | ||||
| } | ||||
							
								
								
									
										29
									
								
								samples/Jolie/student.ol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								samples/Jolie/student.ol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| include "common.iol" | ||||
| include "ui/swing_ui.iol" | ||||
| include "console.iol" | ||||
|  | ||||
| outputPort Exam { | ||||
| Location: Location_Exam | ||||
| Protocol: sodep | ||||
| Interfaces: ExamInterface | ||||
| } | ||||
|  | ||||
| inputPort StudentInput { | ||||
| Location: "socket://localhost:8001/" | ||||
| Protocol: sodep | ||||
| Interfaces: StudentInterface | ||||
| } | ||||
|  | ||||
| main | ||||
| { | ||||
| 	request.studentName = "John"; | ||||
| 	request.examName = "SPLG"; | ||||
| 	request.student.location = "socket://localhost:8001/"; | ||||
| 	request.student.protocol = "sodep"; | ||||
| 	startExam@Exam( request ); | ||||
| 	makeQuestion( question )( answer ) { | ||||
| 		showYesNoQuestionDialog@SwingUI( question.question )( answer ) | ||||
| 	}; | ||||
| 	sendMessage( message ); | ||||
| 	println@Console( message )() | ||||
| } | ||||
							
								
								
									
										6
									
								
								vendor/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/README.md
									
									
									
									
										vendored
									
									
								
							| @@ -165,6 +165,8 @@ This is a list of grammars that Linguist selects to provide syntax highlighting | ||||
| - **Java Server Pages:** [textmate/java.tmbundle](https://github.com/textmate/java.tmbundle) | ||||
| - **JavaScript:** [atom/language-javascript](https://github.com/atom/language-javascript) | ||||
| - **JFlex:** [jflex-de/jflex.tmbundle](https://github.com/jflex-de/jflex.tmbundle) | ||||
| - **Jison:** [cdibbs/language-jison](https://github.com/cdibbs/language-jison) | ||||
| - **Jison Lex:** [cdibbs/language-jison](https://github.com/cdibbs/language-jison) | ||||
| - **JSON:** [textmate/json.tmbundle](https://github.com/textmate/json.tmbundle) | ||||
| - **JSON5:** [atom/language-javascript](https://github.com/atom/language-javascript) | ||||
| - **JSONiq:** [wcandillon/language-jsoniq](https://github.com/wcandillon/language-jsoniq) | ||||
| @@ -270,8 +272,8 @@ This is a list of grammars that Linguist selects to provide syntax highlighting | ||||
| - **Puppet:** [russCloak/SublimePuppet](https://github.com/russCloak/SublimePuppet) | ||||
| - **PureScript:** [purescript-contrib/atom-language-purescript](https://github.com/purescript-contrib/atom-language-purescript) | ||||
| - **Python:** [MagicStack/MagicPython](https://github.com/MagicStack/MagicPython) | ||||
| - **Python console:** [atom/language-python](https://github.com/atom/language-python) | ||||
| - **Python traceback:** [atom/language-python](https://github.com/atom/language-python) | ||||
| - **Python console:** [MagicStack/MagicPython](https://github.com/MagicStack/MagicPython) | ||||
| - **Python traceback:** [MagicStack/MagicPython](https://github.com/MagicStack/MagicPython) | ||||
| - **QMake:** [textmate/cpp-qt.tmbundle](https://github.com/textmate/cpp-qt.tmbundle) | ||||
| - **QML:** [skozlovf/Sublime-QML](https://github.com/skozlovf/Sublime-QML) | ||||
| - **R:** [textmate/r.tmbundle](https://github.com/textmate/r.tmbundle) | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/grammars/language-jolie
									
									
									
									
										vendored
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								vendor/grammars/language-jolie
									
									
									
									
										vendored
									
									
										Submodule
									
								
							 Submodule vendor/grammars/language-jolie added at c0415b5dac
									
								
							
							
								
								
									
										26
									
								
								vendor/licenses/grammar/language-jolie.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/licenses/grammar/language-jolie.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| --- | ||||
| type: grammar | ||||
| name: language-jolie | ||||
| license: mit | ||||
| --- | ||||
| The MIT License (MIT) | ||||
|  | ||||
| Copyright (c) 2015 Fabrizio Montesi <famontesi@gmail.com> | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
		Reference in New Issue
	
	Block a user