Changeset 221
- Timestamp:
- Nov 3, 2002, 12:03:20 AM (18 years ago)
- Location:
- to-imperative/trunk/docs
- Files:
-
- 1 deleted
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/docs/abstract_syntax.txt
r76 r221 11 11 e.ModuleBody ::= t.Item | e.ModuleBody t.Item 12 12 13 t.Item ::= t.Function | t.Object | t. Pragma | t.Const13 t.Item ::= t.Function | t.Object | t.Const 14 14 15 15 s.Linkage ::= s.IntLinkage | s.ExtLinkage … … 19 19 s.ExtLinkage ::= IMPORT 20 20 21 t.Function ::= (s.IntLinkage s.FunctionTag t. FunctionName22 t.InputFormat t.OutputFormat e.Sentence) |23 (s.ExtLinkage s.FunctionTag t. FunctionName21 t.Function ::= (s.IntLinkage s.FunctionTag t.Pragma t.FunctionName 22 t.InputFormat t.OutputFormat t.Branch) | 23 (s.ExtLinkage s.FunctionTag t.Pragma t.FunctionName 24 24 t.InputFormat t.OutputFormat) 25 25 26 26 s.FunctionTag ::= FUNC | FUNC? 27 27 28 t.Pragma ::= (PRAGMA e.PragmaBody) 29 30 e.PragmaBody ::= [Empty] | t.PragmaTerm e.PragmaBody 31 32 t.PragmaTerm ::= (FILE e.FileName) 33 | (LINE s.Line s.Column) 34 | (TRACE e.TraceNames) 35 36 e.FileName ::= [Sequence of liters] 37 38 s.Line ::= [Number] 39 40 s.Column ::= [Number] 41 42 e.TraceNames ::= [Empty] | t.TraceName e.TraceNames 43 44 t.TraceName ::= t.Name 45 28 46 t.FunctionName ::= t.Name 29 47 30 t.InputFormat ::= t.F ormat48 t.InputFormat ::= t.FunFormat 31 49 32 t.OutputFormat ::= t.F ormat50 t.OutputFormat ::= t.FunFormat 33 51 34 t.F ormat ::= (FORMATe.HardExpression)52 t.FunFormat ::= (e.HardExpression) 35 53 36 e.HardExpression ::= e.HardTerms | 37 e.HardTerms t.EVar e.HardTerms | 38 e.HardTerms t.VVar e.HardTerms 54 t.Format ::= (FORMAT t.Pragma e.HardExpression) 55 56 e.HardExpression ::= e.HardTerms 57 | e.HardTerms t.EVar e.HardTerms 58 | e.HardTerms t.VVar e.HardTerms 39 59 40 60 e.HardTerms ::= [Empty] | t.HardTerm e.HardTerms … … 42 62 t.HardTerm ::= t.Symbol | (PAREN e.HardExpression) | t.SVar | t.TVar 43 63 44 t.Block ::= (BLOCK e.Branches) 64 e.Block?! ::= t.Block | NOFAIL t.Block 65 66 t.Block ::= (BLOCK t.Pragma e.Branches) 45 67 46 68 e.Branches ::= [Empty] | t.Branch e.Branches 47 69 48 t.Branch ::= (BRANCH e.Sentence)70 t.Branch ::= (BRANCH t.Pragma e.Sentence) 49 71 50 e.Sentence ::= [Empty] | t.Statement e.Sentence72 e.Sentence ::= [Empty] | e.Block?! e.Sentence | t.Statement e.Sentence 51 73 52 t.Statement ::= t.Action | t.Operator | t.ComplexOperator | t.Pragma74 t.Statement ::= t.Action | t.Operator | t.ComplexOperator 53 75 54 t.Operator ::= CUT | CUTALL | STAKE | NOFAIL | FAIL | ERROR 76 t.Operator ::= (CUT t.Pragma) 77 | (CUTALL t.Pragma) 78 | (STAKE t.Pragma) 79 | (FAIL t.Pragma) 80 | (ERROR t.Pragma) 55 81 56 t.ComplexOperator ::= (NOT e.Sentence) |57 (ITER t.IterBody t.IterVars t.IterCondition) |58 (TRY t.TrySentence t.CatchSentence)82 t.ComplexOperator ::= (NOT t.Branch) 83 | (ITER t.IterBody t.IterVars t.IterCondition) 84 | (TRY t.TryBranch e.CatchBlock) 59 85 60 t.IterBody ::= (e.Sentence)86 t.IterBody ::= t.Branch 61 87 62 88 t.IterVars ::= t.Format 63 89 64 t.IterCondition ::= (e.Sentence)90 t.IterCondition ::= t.Branch 65 91 66 t.Try Sentence ::= (e.Sentence)92 t.TryBranch ::= t.Branch 67 93 68 t.CatchSentence ::= (e.Sentence) 94 e.CatchBlock ::= e.Block?! 69 95 70 96 t.Action ::= t.Pattern | t.Result | t.Format | t.Block 71 97 72 t.Pattern ::= (LEFT e.PatternExpression) | (RIGHT e.PatternExpression) 98 t.Pattern ::= (LEFT t.Pragma e.PatternExpression) 99 | (RIGHT t.Pragma e.PatternExpression) 73 100 74 101 e.PatternExpression ::= [Empty] | t.PatternTerm e.PatternExpression … … 78 105 t.Variable ::= t.EVar | t.VVar | t.TVar | t.Svar 79 106 80 t.EVar ::= (EVAR t. Name)107 t.EVar ::= (EVAR t.Pragma t.Name) | (EVAR) 81 108 82 t.VVar ::= (VVAR t. Name)109 t.VVar ::= (VVAR t.Pragma t.Name) | (VVAR) 83 110 84 t.TVar ::= (TVAR t. Name)111 t.TVar ::= (TVAR t.Pragma t.Name) | (TVAR) 85 112 86 t.SVar ::= (SVAR t. Name)113 t.SVar ::= (SVAR t.Pragma t.Name) | (SVAR) 87 114 88 115 t.Name ::= (e.QualifiedName) … … 90 117 e.QualifiedName ::= [Word] | e.QualifiedName [Word] 91 118 92 t.Result ::= (RESULT e.ResultExpression)119 t.Result ::= (RESULT t.Pragma e.ResultExpression) 93 120 94 e.ResultExpression ::= [Empty] | t.ResultTerm e.ResultExpression 121 e.ResultExpression ::= [Empty] 122 | e.Block?! e.ResultExpression 123 | t.ResultTerm e.ResultExpression 95 124 96 t.ResultTerm ::= t.Symbol | (PAREN e.ResultExpression) | t.Variable |97 (CALL e.ResultExpression) | t.Block125 t.ResultTerm ::= t.Symbol | (PAREN e.ResultExpression) | t.Variable 126 | (CALL t.Pragma e.ResultExpression) 98 127 99 128 t.Symbol ::= s.ObjectSymbol | (REF t.Name) … … 101 130 s.ObjectSymbol ::= [Symbol] 102 131 103 t.Object ::= (s.Linkage s.ObjectType t. ObjectName)132 t.Object ::= (s.Linkage s.ObjectType t.Pragma t.ObjectName) 104 133 105 134 s.ObjectType ::= TABLE | BOX | STRING | VECTOR | CHANNEL … … 109 138 t.Initializer ::= (EXEC e.ResultExpression) 110 139 111 t.Pragma ::= (PRAGMA e.PragmaBody) 112 113 s.PragmaBody ::= e.PragmaFile | e.PragmaLine | e.PragmaTrace 114 115 e.PragmaFile ::= FILE s.FileName 116 117 s.FileName ::= [Word] 118 119 e.PragmaLine ::= LINE s.Line s.Column 120 121 s.Line ::= [Number] 122 123 s.Column ::= [Number] 124 125 e.PragmaTrace ::= TRACE e.TraceNames 126 127 e.TraceNames ::= [Empty] | t.TraceName e.TraceNames 128 129 t.TraceName ::= t.Name 130 131 t.Const ::= (s.IntLinkage CONST t.ConstName e.ConstExpression) | 132 (s.ExtLinkage CONST t.ConstName) 140 t.Const ::= (s.Linkage CONST t.Pragma t.ConstName e.ConstExpression) 133 141 134 142 t.ConstName ::= t.Name … … 136 144 e.ConstExpression ::= [Empty] | t.ConstTerm e.ConstExpression 137 145 138 t.ConstTerm ::= t.Symbol | (PAREN e.ConstExpression) | t.Variable146 t.ConstTerm ::= t.Symbol | (PAREN e.ConstExpression) 139 147
Note: See TracChangeset
for help on using the changeset viewer.