source: CIVL/mods/dev.civl.mc/grammar/Command.g4

main
Last change on this file was c2b37db, checked in by Alex Wilton <awilton@…>, 8 months ago

Merged focus branch into trunk.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5988 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 3.8 KB
RevLine 
[5af87592]1/**
2* This file defines the syntax of CIVL's command line specification.
[ff7b82c]3* There are totally 7 commands, namely, config, compare, help,
[d8786396]4* replay, run, show, and verify.
[5af87592]5* There are a number of options to be chosen as well.
6*
7* The usage of the commands are as follows:
[d8786396]8* civl config
[5af87592]9* civl compare [option]* -spec [option]* file+ -impl [option]* file+
10* civl help [command]
11* civl replay [option]* file+ (replay for one program)
12* civl replay [option]* -spec [option]* file+ -impl [option]* file+
13* (replay for the comparison of two programs.)
14* civl run [option]* file+
15* civl show [option]* file+
16* civl verify [option]* file+
17*/
18grammar Command;
19
20/* The top-level rule */
21start
22 :
[eaedf89]23 'help' (REPLAY | COMMAND | 'help' | 'config' | 'compare')? NEWLINE # help
[feba684]24 | 'compare' commonOption? specAndImplCommand NEWLINE #compare
[5af87592]25 | (REPLAY | COMMAND) commandBody NEWLINE #normal
[d8786396]26 | 'config' NEWLINE #config
[feba684]27 | REPLAY commonOption? specAndImplCommand NEWLINE #replayCompare
[5af87592]28 ;
29
[feba684]30specAndImplCommand
[5af87592]31 : specCommand implCommand
32 | implCommand specCommand
33 ;
34
35commonOption
36 :
37 option+
38 ;
39
40specCommand
41 :
42 SPEC commandBody
43 ;
44
45implCommand
46 :
47 IMPL commandBody
48 ;
49
50commandBody
51 :
52 option* file+
53 ;
54
55option
56 :
57 OPTION_NAME ('=' value )? # normalOption
58 | INPUT VAR '=' value # inputOption
59 | MACRO VAR ('=' value)? # macroOption
60 ;
61
62file
63 :
64 PATH
65 ;
66
67value
68 : BOOLEAN
69 | VAR
70 | NUMBER
71 | PATH
[0bb5e03]72 | STRING
[5af87592]73 ;
74
75BOOLEAN
76 : 'true' | 'false'
77 ;
78
79NUMBER
80 :
81 [\-\+]?[0-9]+
82 ;
83
84SPEC
85 :'-spec'
86 ;
87
88IMPL
89 :'-impl'
90 ;
91
92INPUT
93 : '-input'
94 ;
95
96MACRO
97 : '-D'
98 ;
99
100COMMAND:
[ff7b82c]101 'verify' | 'run' | 'show'
[5af87592]102 ;
103
104REPLAY
105 :
106 'replay'
107 ;
108
109OPTION_NAME
110 :
[4e86cdd]111 '-_CIVL'
[68ca41d]112 | '-analyze_abs'
[4e86cdd]113 | '-ast'
[22f2e8e]114 | '-checkAssertion'
115 | '-checkDivisionByZero'
[2f8ab7d]116 | '-checkMemoryLeak'
[22f2e8e]117 | '-checkDeadlock'
118 | '-checkCommErr'
119 | '-checkConstWrite'
120 | '-checkInputWrite'
121 | '-checkInvalidCast'
122 | '-checkMallocErr'
123 | '-checkMpiErr'
124 | '-checkOutOfBounds'
125 | '-checkOutputRead'
126 | '-checkPointerErr'
127 | '-checkUndefVal'
128 | '-checkUnionErr'
129 | '-checkProcLeak'
130 | '-checkSeqErr'
131 | '-checkMemManageErr'
132 | '-checkTermination'
[5af87592]133 | '-collectHeaps'
[2255fb2]134 | '-collectOutput'
[5af87592]135 | '-collectProcesses'
136 | '-collectScopes'
[61c391b]137 | '-collectSymbolicConstants'
[5af87592]138 | '-debug'
[b97b5a06]139 | '-disableLocalBlock'
[4ab4ebf]140 | '-dpor'
[5af87592]141 | '-enablePrintf'
142 | '-errorBound'
[73090b5]143 | '-errorStateEquiv'
[1cface7]144 | '-fair'
[5af87592]145 | '-guided'
146 | '-id'
[0631a6a]147 | '-int_bit'
[67b3900]148 | '-direct'
[c674c46]149 | '-loop'
[c2b37db]150 | '-memeq'
[5af87592]151 | '-maxdepth'
152 | '-min'
[f810137]153 | '-mpiContract'
[566a657]154 | '-mpi'
[5af87592]155 | '-ompNoSimplify'
[494390a]156 | '-ompOnlySimplifier'
[4a5679a]157 | '-ompLoopDecomp'
[d36c595]158 | '-preemptionBound'
[5af87592]159 | '-preproc'
[f944ee6]160 | '-procBound'
[5e91373]161 | '-prob'
[0fdc01e]162 | '-maxProcs'
[fa8d574]163 | '-quiet'
[9a8af54]164 | '-intOperationTransformer'
[5af87592]165 | '-random'
[bb92c13]166 | '-runtimeUpdate'
[5af87592]167 | '-saveStates'
168 | '-seed'
[fe805a6]169 | '-showMemoryUnits'
[5af87592]170 | '-showAmpleSet'
171 | '-showAmpleSetWtStates'
172 | '-showInputs'
[fe805a6]173 | '-showMemoryUnits'
[5af87592]174 | '-showModel'
175 | '-showPathCondition'
176 | '-showProgram'
177 | '-showProverQueries'
178 | '-showQueries'
179 | '-showSavedStates'
180 | '-showStates'
[575d92a]181 | '-showTime'
[5af87592]182 | '-showTransitions'
[68ca41d]183 | '-showUnreached'
[5af87592]184 | '-simplify'
[7fd49b0]185 | '-sliceAnalysis'
[5af87592]186 | '-solve'
187 | '-statelessPrintf'
[5abe901]188 | '-strict'
[3fdd732]189 | '-svcomp16'
[f60252e]190 | '-svcomp17'
[5af87592]191 | '-sysIncludePath'
[073200b]192 | '-timeout'
[52d5578]193 | '-testGen'
[5af87592]194 | '-trace'
[a64709d]195 | '-unpreproc'
[5af87592]196 | '-userIncludePath'
197 | '-verbose'
198 | '-web'
[43f5e41]199 | '-witness'
[5af87592]200 ;
201
202VAR
203 :
204 [_a-zA-Z] [_a-zA-Z0-9]*
205 ;
206
207PATH
208 :
[feba684]209 ([_a-zA-Z0-9\.\/])([_:a-zA-Z0-9\-\.\/])*
[5af87592]210 ;
211
212NEWLINE
213 : '\r'? '\n'
214 ;
215
[0bb5e03]216STRING
217 : '"' ~[ =\-\r\n\t]+ '"';
[5af87592]218
219WS
220 : [ \t]+ -> skip
221 ;
Note: See TracBrowser for help on using the repository browser.