mirror of
https://github.com/percona/percona-toolkit.git
synced 2026-05-05 01:00:35 +08:00
Add util/write-dev-docs, util/extract-package, and docs/dev/.
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
|
||||
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 2 - <http://download.macromedia.com/pub/documentation/en/flash/fl8/fl8_as2lr.pdf>
|
||||
ActionScript 3 - <http://download.macromedia.com/pub/documentation/en/flex/2/prog_actionscript30.pdf>
|
||||
E2X - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf
|
||||
|
||||
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/
|
||||
Reference in New Issue
Block a user