Difference between revisions of "Language Reference/Constants"
From wiki.visual-prolog.com
m (Example Template) |
(TypeExpression) |
||
Line 14: | Line 14: | ||
<vipbnf><ConstantDefinition>: one of | <vipbnf><ConstantDefinition>: one of | ||
<ConstantName> = <ConstantValue> | <ConstantName> = <ConstantValue> | ||
<ConstantName> : < | <ConstantName> : <TypeExpression> = <ConstantValue></vipbnf> | ||
<vipbnf><ConstantName>: | <vipbnf><ConstantName>: | ||
Line 21: | Line 21: | ||
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 <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| | 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). |
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).