ddnet/docs/doctool/Info/Languages.txt

106 lines
4.4 KiB
Plaintext
Raw Normal View History

2007-05-22 15:06:55 +00:00
Title: Language Notes
_______________________________________________________________________________
This is more for my personal reference than anything else.
___________________________________________________________________________
Topic: Prototype Parameter Styles
___________________________________________________________________________
Parameters via Commas, Typed via Spaces:
> FunctionName ( type indentifier, type identifier = value, modifier type identifier )
> FunctionName ( indentifier, identifier = value )
The general idea is that parameters are separated by commas. Identifiers cannot contain spaces. Types and modifiers,
if available, are separated from the identifiers with spaces. There may be an equals sign to set the default value.
So parsing means splitting by commas, stripping everything past an equals sign for the default value, stripping everything
after the last space for the identifier, and the rest is the type. If there are no internal spaces after the default value is
stripped, it's all identifier.
Note that internal parenthesis, brackets, braces, and angle brackets should be parsed out. They may be present in default
values or types and any commas and equal signs in them should not be included.
Applies to C++, Java, C#, JavaScript, Python, PHP, Ruby.
Applies to Perl as well, even though it doesn't have any real parameter declaration structure. Just adding it with comments
is fine.
Parameters via Semicolons and Commas, Typed via Colons:
> FunctionName ( identifier: type; identifier, identifier: type; identifier: type := value )
Parameters via semicolons, types via colons. However, there can be more than one parameter per type via commas.
Default values via colon-equals.
Applies to Pascal, Ada.
SQL:
> FunctionName ( identifier type, identifier modifier type, identifier type := value )
Parameters separated by commas. Identifiers come before the types and are separated by a space. Default values are
specified with colon-equals.
> FunctionName @identifier type, @dentifier modifier type, @identifier type = value
Microsoft's SQL uses equals instead of colon-equals, doesn't need parenthesis, and starts its parameter names with an @
symbol.
Visual Basic:
> FunctionName ( modifiers identifier as type, identifier = value )
Parameters separated by commas. Default values via equals. However, any number of modifiers may appear before the
identifier. Those modifiers are ByVal, ByRef, Optional, and ParamArray.
Tcl:
> FunctionName { identifier identifier { whatever } } { code }
Identifiers are specified in the first set of braces and have no commas. However, they can be broken out into sub-braces.
___________________________________________________________________________
Topic: Syntax References
___________________________________________________________________________
C++ - http://www.csci.csusb.edu/dick/c++std/syntax.html
C# - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csspec/html/CSharpSpecStart.asp. Open in IE.
Java - http://cui.unige.ch/db-research/Enseignement/analyseinfo/
Ada - http://cui.unige.ch/db-research/Enseignement/analyseinfo/
SQL - http://cui.unige.ch/db-research/Enseignement/analyseinfo/,
http://www.cs.umb.edu/cs634/ora9idocs/appdev.920/a96624/13_elems.htm, or
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp?frame=true (open in IE).
JavaScript - http://academ.hvcc.edu/~kantopet/javascript/index.php
Python - http://www.python.org/doc/2.3.4/ref/ref.html
PHP - http://www.php.net/manual/en/langref.php
Visual Basic - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbls7/html/vbspecstart.asp. Open in IE.
Pascal - http://pages.cpsc.ucalgary.ca/~becker/231/SyntaxDiagrams/pascal-syntax_files/frame.htm. Open in IE.
Ruby - http://www.rubycentral.com/book/
ActionScript - <http://skaiste.elekta.lt/Books/O'Reilly/Bookshelfs/books/webdesign/action/index.htm>
R - Somewhere on http://www.r-project.org.
ColdFusion - http://livedocs.macromedia.com/coldfusion/6/Developing_ColdFusion_MX_Applications_with_CFML/contents.htm
Eiffel - http://www.gobosoft.com/eiffel/syntax/