mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	.st file extension for StringTemplate HTML files
Conflicts: lib/linguist/samples.json
This commit is contained in:
		
				
					committed by
					
						 Arfon Smith
						Arfon Smith
					
				
			
			
				
	
			
			
			
						parent
						
							cbcbb969d5
						
					
				
				
					commit
					bb58840c1c
				
			| @@ -787,8 +787,9 @@ HTML: | ||||
|   primary_extension: .html | ||||
|   extensions: | ||||
|   - .htm | ||||
|   - .xhtml | ||||
|   - .html.hl | ||||
|   - .st | ||||
|   - .xhtml | ||||
|  | ||||
| HTML+Django: | ||||
|   type: markup | ||||
|   | ||||
| @@ -195,6 +195,10 @@ | ||||
|       ".handlebars", | ||||
|       ".hbs" | ||||
|     ], | ||||
|     "HTML": [ | ||||
|       ".html", | ||||
|       ".st" | ||||
|     ], | ||||
|     "Hy": [ | ||||
|       ".hy" | ||||
|     ], | ||||
| @@ -512,6 +516,9 @@ | ||||
|     "Slash": [ | ||||
|       ".sl" | ||||
|     ], | ||||
|     "Smalltalk": [ | ||||
|       ".st" | ||||
|     ], | ||||
|     "SourcePawn": [ | ||||
|       ".sp" | ||||
|     ], | ||||
| @@ -677,8 +684,8 @@ | ||||
|       ".gemrc" | ||||
|     ] | ||||
|   }, | ||||
|   "tokens_total": 589521, | ||||
|   "languages_total": 711, | ||||
|   "tokens_total": 590357, | ||||
|   "languages_total": 716, | ||||
|   "tokens": { | ||||
|     "ABAP": { | ||||
|       "*/**": 1, | ||||
| @@ -24913,6 +24920,204 @@ | ||||
|       "</h2>": 1, | ||||
|       "/each": 1 | ||||
|     }, | ||||
|     "HTML": { | ||||
|       "<!DOCTYPE>": 2, | ||||
|       "HTML": 2, | ||||
|       "PUBLIC": 2, | ||||
|       "W3C": 2, | ||||
|       "DTD": 3, | ||||
|       "4": 1, | ||||
|       "0": 2, | ||||
|       "Frameset": 1, | ||||
|       "EN": 2, | ||||
|       "http": 3, | ||||
|       "www": 2, | ||||
|       "w3": 2, | ||||
|       "org": 2, | ||||
|       "TR": 2, | ||||
|       "REC": 1, | ||||
|       "html40": 1, | ||||
|       "frameset": 1, | ||||
|       "dtd": 2, | ||||
|       "<html>": 2, | ||||
|       "<head>": 2, | ||||
|       "Common_meta": 1, | ||||
|       "(": 14, | ||||
|       ")": 14, | ||||
|       "<title>": 2, | ||||
|       "Android": 5, | ||||
|       "API": 7, | ||||
|       "Differences": 2, | ||||
|       "Report": 2, | ||||
|       "</title>": 2, | ||||
|       "<body>": 2, | ||||
|       "<div>": 10, | ||||
|       "class=": 22, | ||||
|       "Header": 1, | ||||
|       "<h2>": 1, | ||||
|       "</h2>": 1, | ||||
|       "<p>": 3, | ||||
|       "This": 1, | ||||
|       "document": 1, | ||||
|       "details": 1, | ||||
|       "the": 11, | ||||
|       "changes": 2, | ||||
|       "in": 4, | ||||
|       "framework": 2, | ||||
|       "API.": 3, | ||||
|       "It": 2, | ||||
|       "shows": 1, | ||||
|       "additions": 1, | ||||
|       "modifications": 1, | ||||
|       "and": 5, | ||||
|       "removals": 2, | ||||
|       "for": 2, | ||||
|       "packages": 1, | ||||
|       "classes": 1, | ||||
|       "methods": 1, | ||||
|       "fields.": 1, | ||||
|       "Each": 1, | ||||
|       "reference": 1, | ||||
|       "to": 3, | ||||
|       "an": 3, | ||||
|       "change": 2, | ||||
|       "includes": 1, | ||||
|       "a": 4, | ||||
|       "brief": 1, | ||||
|       "description": 1, | ||||
|       "of": 5, | ||||
|       "explanation": 1, | ||||
|       "suggested": 1, | ||||
|       "workaround": 1, | ||||
|       "where": 1, | ||||
|       "available.": 1, | ||||
|       "</p>": 3, | ||||
|       "The": 2, | ||||
|       "differences": 2, | ||||
|       "described": 1, | ||||
|       "this": 2, | ||||
|       "report": 1, | ||||
|       "are": 3, | ||||
|       "based": 1, | ||||
|       "comparison": 1, | ||||
|       "APIs": 1, | ||||
|       "whose": 1, | ||||
|       "versions": 1, | ||||
|       "specified": 1, | ||||
|       "upper": 1, | ||||
|       "-": 1, | ||||
|       "right": 1, | ||||
|       "corner": 1, | ||||
|       "page.": 1, | ||||
|       "compares": 1, | ||||
|       "newer": 1, | ||||
|       "older": 2, | ||||
|       "version": 1, | ||||
|       "noting": 1, | ||||
|       "any": 1, | ||||
|       "relative": 1, | ||||
|       "So": 1, | ||||
|       "example": 1, | ||||
|       "indicated": 1, | ||||
|       "no": 1, | ||||
|       "longer": 1, | ||||
|       "present": 1, | ||||
|       "For": 1, | ||||
|       "more": 1, | ||||
|       "information": 1, | ||||
|       "about": 1, | ||||
|       "SDK": 1, | ||||
|       "see": 1, | ||||
|       "<a>": 8, | ||||
|       "href=": 9, | ||||
|       "target=": 3, | ||||
|       "product": 1, | ||||
|       "site": 1, | ||||
|       "</a>": 8, | ||||
|       ".": 1, | ||||
|       "if": 4, | ||||
|       "no_delta": 1, | ||||
|       "<h3>": 1, | ||||
|       "Congratulation": 1, | ||||
|       "</h3>": 1, | ||||
|       "No": 1, | ||||
|       "were": 1, | ||||
|       "detected": 1, | ||||
|       "between": 1, | ||||
|       "two": 1, | ||||
|       "provided": 1, | ||||
|       "APIs.": 1, | ||||
|       "endif": 4, | ||||
|       "removed_packages": 2, | ||||
|       "Table": 3, | ||||
|       "name": 3, | ||||
|       "rows": 3, | ||||
|       "{": 3, | ||||
|       "it.from": 1, | ||||
|       "ModelElementRow": 1, | ||||
|       "}": 3, | ||||
|       "<br/>": 3, | ||||
|       "added_packages": 2, | ||||
|       "it.to": 2, | ||||
|       "PackageAddedLink": 1, | ||||
|       "SimpleTableRow": 2, | ||||
|       "changed_packages": 2, | ||||
|       "PackageChangedLink": 1, | ||||
|       "</div>": 11, | ||||
|       "</body>": 2, | ||||
|       "</html>": 2, | ||||
|       "html": 1, | ||||
|       "XHTML": 1, | ||||
|       "1": 1, | ||||
|       "Transitional": 1, | ||||
|       "xhtml1": 2, | ||||
|       "transitional": 1, | ||||
|       "xmlns=": 1, | ||||
|       "<meta>": 1, | ||||
|       "equiv=": 1, | ||||
|       "content=": 1, | ||||
|       "Related": 2, | ||||
|       "Pages": 2, | ||||
|       "<link>": 1, | ||||
|       "rel=": 1, | ||||
|       "type=": 1, | ||||
|       "</head>": 1, | ||||
|       "Main": 1, | ||||
|       "Page": 1, | ||||
|       "&": 3, | ||||
|       "middot": 3, | ||||
|       ";": 3, | ||||
|       "Class": 2, | ||||
|       "Overview": 2, | ||||
|       "Hierarchy": 1, | ||||
|       "All": 1, | ||||
|       "Classes": 1, | ||||
|       "Here": 1, | ||||
|       "is": 1, | ||||
|       "list": 1, | ||||
|       "all": 1, | ||||
|       "related": 1, | ||||
|       "documentation": 1, | ||||
|       "pages": 1, | ||||
|       "<table>": 1, | ||||
|       "<tr>": 2, | ||||
|       "id=": 2, | ||||
|       "<td>": 4, | ||||
|       "<img>": 2, | ||||
|       "src=": 2, | ||||
|       "alt=": 2, | ||||
|       "width=": 1, | ||||
|       "height=": 2, | ||||
|       "</td>": 4, | ||||
|       "</tr>": 2, | ||||
|       "16": 1, | ||||
|       "Layout": 1, | ||||
|       "System": 1, | ||||
|       "</table>": 1, | ||||
|       "Generated": 1, | ||||
|       "with": 1, | ||||
|       "Doxygen": 1 | ||||
|     }, | ||||
|     "Hy": { | ||||
|       ";": 4, | ||||
|       "Fibonacci": 1, | ||||
| @@ -56359,6 +56564,131 @@ | ||||
|       "ast.eval": 1, | ||||
|       "Env.new": 1 | ||||
|     }, | ||||
|     "Smalltalk": { | ||||
|       "Object": 1, | ||||
|       "subclass": 2, | ||||
|       "#Philosophers": 1, | ||||
|       "instanceVariableNames": 1, | ||||
|       "classVariableNames": 1, | ||||
|       "poolDictionaries": 1, | ||||
|       "category": 1, | ||||
|       "Philosophers": 3, | ||||
|       "class": 1, | ||||
|       "methodsFor": 2, | ||||
|       "new": 4, | ||||
|       "self": 25, | ||||
|       "shouldNotImplement": 1, | ||||
|       "quantity": 2, | ||||
|       "super": 1, | ||||
|       "initialize": 3, | ||||
|       "dine": 4, | ||||
|       "seconds": 2, | ||||
|       "(": 19, | ||||
|       "Delay": 3, | ||||
|       "forSeconds": 1, | ||||
|       ")": 19, | ||||
|       "wait.": 5, | ||||
|       "philosophers": 2, | ||||
|       "do": 1, | ||||
|       "[": 18, | ||||
|       "each": 5, | ||||
|       "|": 18, | ||||
|       "terminate": 1, | ||||
|       "]": 18, | ||||
|       ".": 16, | ||||
|       "size": 4, | ||||
|       "leftFork": 6, | ||||
|       "n": 11, | ||||
|       "forks": 5, | ||||
|       "at": 3, | ||||
|       "rightFork": 6, | ||||
|       "ifTrue": 1, | ||||
|       "ifFalse": 1, | ||||
|       "+": 1, | ||||
|       "eating": 3, | ||||
|       "Semaphore": 2, | ||||
|       "new.": 2, | ||||
|       "-": 1, | ||||
|       "timesRepeat": 1, | ||||
|       "signal": 1, | ||||
|       "randy": 3, | ||||
|       "Random": 1, | ||||
|       "to": 2, | ||||
|       "collect": 2, | ||||
|       "forMutualExclusion": 1, | ||||
|       "philosopher": 2, | ||||
|       "philosopherCode": 3, | ||||
|       "status": 8, | ||||
|       "n.": 2, | ||||
|       "printString": 1, | ||||
|       "true": 2, | ||||
|       "whileTrue": 1, | ||||
|       "Transcript": 5, | ||||
|       "nextPutAll": 5, | ||||
|       ";": 8, | ||||
|       "nl.": 5, | ||||
|       "forMilliseconds": 2, | ||||
|       "next": 2, | ||||
|       "*": 2, | ||||
|       "critical": 1, | ||||
|       "signal.": 2, | ||||
|       "newProcess": 1, | ||||
|       "priority": 1, | ||||
|       "Processor": 1, | ||||
|       "userBackgroundPriority": 1, | ||||
|       "name": 1, | ||||
|       "resume": 1, | ||||
|       "yourself": 1, | ||||
|       "Koan": 1, | ||||
|       "TestBasic": 1, | ||||
|       "<comment:>": 1, | ||||
|       "A": 1, | ||||
|       "collection": 1, | ||||
|       "of": 1, | ||||
|       "introductory": 1, | ||||
|       "tests": 2, | ||||
|       "testDeclarationAndAssignment": 1, | ||||
|       "declaration": 2, | ||||
|       "anotherDeclaration": 2, | ||||
|       "_": 1, | ||||
|       "expect": 10, | ||||
|       "fillMeIn": 10, | ||||
|       "toEqual": 10, | ||||
|       "declaration.": 1, | ||||
|       "anotherDeclaration.": 1, | ||||
|       "testEqualSignIsNotAnAssignmentOperator": 1, | ||||
|       "variableA": 6, | ||||
|       "variableB": 5, | ||||
|       "value": 2, | ||||
|       "variableB.": 2, | ||||
|       "testMultipleStatementsInASingleLine": 1, | ||||
|       "variableC": 2, | ||||
|       "variableA.": 1, | ||||
|       "variableC.": 1, | ||||
|       "testInequality": 1, | ||||
|       "testLogicalOr": 1, | ||||
|       "expression": 4, | ||||
|       "<": 2, | ||||
|       "expression.": 2, | ||||
|       "testLogicalAnd": 1, | ||||
|       "&": 1, | ||||
|       "testNot": 1, | ||||
|       "not.": 1, | ||||
|       "testSimpleChainMatches": 1, | ||||
|       "e": 11, | ||||
|       "eCtrl": 3, | ||||
|       "eventKey": 3, | ||||
|       "e.": 1, | ||||
|       "ctrl": 5, | ||||
|       "true.": 1, | ||||
|       "assert": 2, | ||||
|       "matches": 4, | ||||
|       "{": 4, | ||||
|       "}": 4, | ||||
|       "eCtrl.": 2, | ||||
|       "deny": 2, | ||||
|       "a": 1 | ||||
|     }, | ||||
|     "SourcePawn": { | ||||
|       "//#define": 1, | ||||
|       "DEBUG": 2, | ||||
| @@ -62288,6 +62618,7 @@ | ||||
|     "Groovy Server Pages": 91, | ||||
|     "Haml": 4, | ||||
|     "Handlebars": 69, | ||||
|     "HTML": 413, | ||||
|     "Hy": 155, | ||||
|     "IDL": 418, | ||||
|     "Idris": 148, | ||||
| @@ -62379,6 +62710,7 @@ | ||||
|     "ShellSession": 233, | ||||
|     "Shen": 3472, | ||||
|     "Slash": 187, | ||||
|     "Smalltalk": 423, | ||||
|     "SourcePawn": 2080, | ||||
|     "SQL": 1485, | ||||
|     "Squirrel": 130, | ||||
| @@ -62464,6 +62796,7 @@ | ||||
|     "Groovy Server Pages": 4, | ||||
|     "Haml": 1, | ||||
|     "Handlebars": 2, | ||||
|     "HTML": 2, | ||||
|     "Hy": 2, | ||||
|     "IDL": 4, | ||||
|     "Idris": 1, | ||||
| @@ -62555,6 +62888,7 @@ | ||||
|     "ShellSession": 3, | ||||
|     "Shen": 3, | ||||
|     "Slash": 1, | ||||
|     "Smalltalk": 3, | ||||
|     "SourcePawn": 1, | ||||
|     "SQL": 5, | ||||
|     "Squirrel": 1, | ||||
| @@ -62585,5 +62919,5 @@ | ||||
|     "YAML": 2, | ||||
|     "Zephir": 2 | ||||
|   }, | ||||
|   "md5": "b191c6f4ae2ff732b15aa39c58ba653f" | ||||
|   "md5": "127e4abbd61c3dfa815c46752237e812" | ||||
| } | ||||
							
								
								
									
										60
									
								
								samples/HTML/ApiOverviewPage.st
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								samples/HTML/ApiOverviewPage.st
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"> | ||||
| <html> | ||||
| <head> | ||||
| $Common_meta()$ | ||||
| <title> | ||||
| Android API Differences Report | ||||
| </title> | ||||
| <body> | ||||
| <div class="body"> | ||||
|  | ||||
| $Header()$ | ||||
|  | ||||
|  | ||||
| <div class="content"> | ||||
| <h2>Android API Differences Report</h2> | ||||
| <p>This document details the changes in the Android framework API. It shows  | ||||
| additions, modifications, and removals for packages, classes, methods, and  | ||||
| fields. Each reference to an API change includes a brief description of the  | ||||
| API and an explanation of the change and suggested workaround, where available.</p> | ||||
|  | ||||
| <p>The differences described in this report are based a comparison of the APIs  | ||||
| whose versions are specified in the upper-right corner of this page. It compares a  | ||||
| newer "to" API to an older "from" version, noting any changes relative to the  | ||||
| older API. So, for example, indicated API removals are no longer present in the "to"  | ||||
| API.</p> | ||||
| <p>For more information about the Android framework API and SDK,  | ||||
| see the <a href="http://code.google.com/android/index.html" target="_top">Android product site</a>.</p> | ||||
|  | ||||
| $if(no_delta)$ | ||||
| <h3>Congratulation!</h3> | ||||
| No differences were detected between the two provided APIs. | ||||
| $endif$ | ||||
|  | ||||
|  | ||||
| $if(removed_packages)$ | ||||
| $Table(name="Removed Packages", rows=removed_packages:{$it.from:ModelElementRow()$})$ | ||||
| <br/> | ||||
| $endif$ | ||||
|  | ||||
|  | ||||
| $if(added_packages)$ | ||||
| $Table(name="Added Packages", rows=added_packages:{$it.to:PackageAddedLink()$}:SimpleTableRow())$ | ||||
| <br/> | ||||
| $endif$ | ||||
|  | ||||
| $if(changed_packages)$ | ||||
| $Table(name="Changed Packages", rows=changed_packages:{$it.to:PackageChangedLink()$}:SimpleTableRow())$ | ||||
| <br/> | ||||
| $endif$ | ||||
| </div> | ||||
|  | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										31
									
								
								samples/HTML/pages.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								samples/HTML/pages.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | ||||
| <title>Related Pages</title> | ||||
| <link href="qt.css" rel="stylesheet" type="text/css"/> | ||||
| </head> | ||||
| <body> | ||||
| <div class=header> | ||||
| <a class=headerLink  href="index.html">Main Page</a> · | ||||
| <a class=headerLink  href="classoverview.html">Class Overview</a> · | ||||
| <a class=headerLink  href="hierarchy.html">Hierarchy</a> · | ||||
| <a class=headerLink  href="annotated.html">All Classes</a> | ||||
| </div> | ||||
| <!-- Generated by Doxygen 1.8.1.2 --> | ||||
| </div><!-- top --> | ||||
| <div class="header"> | ||||
|   <div class="headertitle"> | ||||
| <div class="title">Related Pages</div>  </div> | ||||
| </div><!--header--> | ||||
| <div class="contents"> | ||||
| <div class="textblock">Here is a list of all related documentation pages:</div><div class="directory"> | ||||
| <table class="directory"> | ||||
| <tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="classoverview.html" target="_self">Class Overview</a></td><td class="desc"></td></tr> | ||||
| <tr id="row_1_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="thelayoutsystem.html" target="_self">The Layout System</a></td><td class="desc"></td></tr> | ||||
| </table> | ||||
| </div><!-- directory --> | ||||
| </div><!-- contents --> | ||||
| <div class="footer" />Generated with <a href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.1.2</div> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										111
									
								
								samples/Smalltalk/Dinner.st
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								samples/Smalltalk/Dinner.st
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,111 @@ | ||||
| "====================================================================== | ||||
| | | ||||
| |   Smalltalk dining philosophers | ||||
| | | ||||
| | | ||||
|  ======================================================================" | ||||
|  | ||||
|  | ||||
| "====================================================================== | ||||
| | | ||||
| | Copyright 1999, 2000 Free Software Foundation, Inc. | ||||
| | Written by Paolo Bonzini. | ||||
| | | ||||
| | This file is part of GNU Smalltalk. | ||||
| | | ||||
| | GNU Smalltalk is free software; you can redistribute it and/or modify it | ||||
| | under the terms of the GNU General Public License as published by the Free | ||||
| | Software Foundation; either version 2, or (at your option) any later version. | ||||
| |  | ||||
| | GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT | ||||
| | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||||
| | FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more | ||||
| | details. | ||||
| |  | ||||
| | You should have received a copy of the GNU General Public License along with | ||||
| | GNU Smalltalk; see the file COPYING.  If not, write to the Free Software | ||||
| | Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.   | ||||
| | | ||||
|  ======================================================================" | ||||
|  | ||||
|  | ||||
| Object subclass: #Philosophers | ||||
|     instanceVariableNames: 'forks philosophers randy eating' | ||||
|     classVariableNames: '' | ||||
|     poolDictionaries: '' | ||||
|     category: 'Examples-Processes'! | ||||
|  | ||||
| !Philosophers class methodsFor: 'dining'! | ||||
|  | ||||
| new | ||||
|     self shouldNotImplement | ||||
| ! | ||||
|  | ||||
| new: quantity | ||||
|     ^super new initialize: quantity | ||||
| ! ! | ||||
|  | ||||
| !Philosophers methodsFor: 'dining'! | ||||
|  | ||||
| dine | ||||
|     self dine: 15 | ||||
| ! | ||||
|  | ||||
| dine: seconds | ||||
|     (Delay forSeconds: seconds) wait. | ||||
|     philosophers do: [ :each | each terminate ]. | ||||
|     self initialize: self size | ||||
| ! | ||||
|  | ||||
| leftFork: n | ||||
|     ^forks at: n | ||||
| ! | ||||
|  | ||||
| rightFork: n | ||||
|     ^n = self size | ||||
| 	ifTrue: [ forks at: 1 ] | ||||
| 	ifFalse: [ forks at: n + 1 ] | ||||
| ! | ||||
|  | ||||
| initialize: n | ||||
|     eating := Semaphore new. | ||||
|     n - 1 timesRepeat: [ eating signal ]. | ||||
|  | ||||
|     randy := Random new. | ||||
|     forks := (1 to: n) collect: [ :each | Semaphore forMutualExclusion ]. | ||||
|     philosophers := (1 to: n) collect: [ :each | self philosopher: each ]. | ||||
| ! | ||||
|  | ||||
| philosopher: n | ||||
|     | philosopherCode leftFork rightFork status | | ||||
|     leftFork  := self leftFork: n. | ||||
|     rightFork := self rightFork: n. | ||||
|     status    := 'Philosopher #', n printString, ' '. | ||||
|     philosopherCode := [[ true ] whileTrue: [ | ||||
| 	Transcript nextPutAll: status, 'thinks'; nl. | ||||
| 	(Delay forMilliseconds: randy next * 2000) wait. | ||||
| 	Transcript nextPutAll: status, 'wants to eat'; nl. | ||||
| 	eating critical: [				    "Avoid deadlock" | ||||
| 	    Transcript nextPutAll: status, 'waits for left fork'; nl. | ||||
| 	    leftFork wait. | ||||
| 	    Transcript nextPutAll: status, 'waits for right fork'; nl. | ||||
| 	    rightFork wait. | ||||
| 	    Transcript nextPutAll: status, 'eats'; nl. | ||||
| 	    (Delay forMilliseconds: randy next * 2000) wait. | ||||
| 	    leftFork signal. | ||||
| 	    rightFork signal. | ||||
| 	]. | ||||
|     ]]. | ||||
|  | ||||
|     ^(philosopherCode newProcess) | ||||
| 	priority: Processor userBackgroundPriority; | ||||
| 	name: status; | ||||
| 	resume; | ||||
| 	yourself | ||||
| ! | ||||
|  | ||||
| size | ||||
|     ^forks size | ||||
| ! ! | ||||
|  | ||||
| (Philosophers new: 5) dine! | ||||
							
								
								
									
										64
									
								
								samples/Smalltalk/TestBasic.st
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								samples/Smalltalk/TestBasic.st
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| Koan subclass: TestBasic [ | ||||
|   <comment: 'A collection of introductory tests.'> | ||||
|  | ||||
|   testDeclarationAndAssignment [ | ||||
|     | declaration anotherDeclaration | | ||||
|     "You must declare variables before using them." | ||||
|     "Variables are separated by a single space." | ||||
|  | ||||
|     declaration _ 1.  "Squeak Smalltalk way to assign value" | ||||
|     anotherDeclaration := 'string'.  "typical way to assign value | ||||
|       (this will be used throughout the koans)" | ||||
|  | ||||
|     self expect: fillMeIn toEqual: declaration. | ||||
|     self expect: fillMeIn toEqual: anotherDeclaration. | ||||
|   ] | ||||
|  | ||||
|   testEqualSignIsNotAnAssignmentOperator [ | ||||
|     | variableA variableB value | | ||||
|  | ||||
|     variableA := variableB := 1234.  "multiple assignments work" | ||||
|     value := variableA = variableB.  "equal is not used for assignment" | ||||
|  | ||||
|     self expect: fillMeIn toEqual: (variableA = variableB). | ||||
|  | ||||
|     "#== is a message that checks if identity is equal.  More about messages in the TestMessage koan." | ||||
|   ] | ||||
|  | ||||
|   testMultipleStatementsInASingleLine [ | ||||
|     | variableA variableB variableC | | ||||
|  | ||||
|     "Multiple statements are separated by periods." | ||||
|     variableA := 1. variableB := 2. variableC := 3. | ||||
|  | ||||
|     self expect: fillMeIn toEqual: variableA. | ||||
|     self expect: fillMeIn toEqual: variableB. | ||||
|     self expect: fillMeIn toEqual: variableC. | ||||
|   ] | ||||
|  | ||||
|   testInequality [ | ||||
|     self expect: fillMeIn toEqual: ('hello' ~= 'world'). | ||||
|  | ||||
|     "#~~ is a message that checks if identity is not equal.  More about messages in the TestMessage koan." | ||||
|   ] | ||||
|  | ||||
|   testLogicalOr [ | ||||
|     | expression | | ||||
|  | ||||
|     expression := (3 > 4) | (5 < 6). | ||||
|  | ||||
|     self expect: fillMeIn toEqual: expression. | ||||
|   ] | ||||
|  | ||||
|   testLogicalAnd [ | ||||
|     | expression | | ||||
|  | ||||
|     expression := (2 > 1) & ('a' < 'b'). | ||||
|  | ||||
|     self expect: fillMeIn toEqual: expression. | ||||
|   ] | ||||
|  | ||||
|   testNot [ | ||||
|     self expect: fillMeIn toEqual: true not. | ||||
|   ] | ||||
| ] | ||||
							
								
								
									
										11
									
								
								samples/Smalltalk/testSimpleChainMatches.st
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								samples/Smalltalk/testSimpleChainMatches.st
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| tests | ||||
| testSimpleChainMatches | ||||
| 	|e eCtrl | | ||||
| 	e := self eventKey: $e. | ||||
| 	eCtrl := self eventKey: $e ctrl: true. | ||||
| 	 | ||||
| 	self assert: (($e ctrl, $e) matches: {eCtrl}). | ||||
| 	self assert: ($e ctrl matches: {eCtrl. e}). | ||||
| 	 | ||||
| 	self deny: (($e ctrl, $e) matches: {eCtrl. self eventKey: $a}). | ||||
| 	self deny: ($e ctrl matches: {e}). | ||||
		Reference in New Issue
	
	Block a user