Difference between revisions of "Language Reference/Constants"
From wiki.visual-prolog.com
m (1 revision(s)) |
(TypeExpression) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{languageReferenceNavbar|Constants}} | {{languageReferenceNavbar|Constants}} | ||
== Constants Sections == | === Constants Sections === | ||
A <vp>constants</vp> section defines a set of constants in the current scope. | A <vp>constants</vp> section defines a set of constants in the current scope. | ||
Line 8: | Line 8: | ||
constants <ConstantDefinition>-dot-term-list-opt</vipbnf> | constants <ConstantDefinition>-dot-term-list-opt</vipbnf> | ||
== Constant Definitions == | === Constant Definitions === | ||
A constant definition defines a named constant, its type, and its value. | A constant definition defines a named constant, its type, and its value. | ||
<vipbnf><ConstantDefinition>: | <vipbnf><ConstantDefinition>: one of | ||
<ConstantName> = <ConstantValue> | <ConstantName> = <ConstantValue> | ||
<ConstantName> : <TypeExpression> = <ConstantValue></vipbnf> | |||
<vipbnf><ConstantName>: | <vipbnf><ConstantName>: | ||
<LowerCaseIdentifier></vipbnf> | <LowerCaseIdentifier></vipbnf> | ||
The <vpbnf><ConstantValue></vpbnf> should be an expression, which can be evaluated at compile time and it should have the type of the correspondent domain. The <vpbnf><ConstantName></vpbnf> should be a | The <vpbnf><ConstantValue></vpbnf> should be an expression, which can be evaluated at compile time and it should have the type of the correspondent domain. The <vpbnf><ConstantName></vpbnf> should be a {{lang2|Lexical_Elements|Identifiers|lower case identifier}}. | ||
The {{lang2|Domains|Type_Expressions|TypeExpression}} can be omitted only for the following built-in domains: | |||
#Numerical (i.e. integral or real) constants. In this case, the corresponding anonymous numerical domain is adopted for a constant (see the {{lang2|Domains|Integral_Domains|numerical domains}} for details). | #Numerical (i.e. integral or real) constants. In this case, the corresponding anonymous numerical domain is adopted for a constant (see the {{lang2|Domains|Integral_Domains|numerical domains}} for details). | ||
Line 29: | Line 28: | ||
#{{lang2|Built-in_entities|char|Character}} constants. | #{{lang2|Built-in_entities|char|Character}} constants. | ||
{{Example| | |||
<vip>constants | <vip>constants | ||
my_char = 'a'. | my_char = 'a'. | ||
Line 36: | Line 34: | ||
binaryFileName = "mybin". | binaryFileName = "mybin". | ||
myBinary = #bininclude(binaryFileName).</vip> | myBinary = #bininclude(binaryFileName).</vip> | ||
}} |
Latest revision as of 15:13, 2 May 2017
Constants Sections
A constants section defines a set of constants in the current scope.
ConstantsSection : constants ConstantDefinition-dot-term-list-opt
Constant Definitions
A constant definition defines a named constant, its type, and its value.
ConstantDefinition: one of ConstantName = ConstantValue ConstantName : TypeExpression = ConstantValue
ConstantName: LowerCaseIdentifier
The ConstantValue should be an expression, which can be evaluated at compile time and it should have the type of the correspondent domain. The ConstantName should be a lower case identifier.
The TypeExpression can be omitted only for the following built-in domains:
- Numerical (i.e. integral or real) constants. In this case, the corresponding anonymous numerical domain is adopted for a constant (see the numerical domains for details).
- Binary constants.
- String constants.
- Character constants.
Example
constants my_char = 'a'. true_const : boolean = true. binaryFileName = "mybin". myBinary = #bininclude(binaryFileName).