1*99e0aae7SDavid Rees# Copyright 2019 Google LLC 2*99e0aae7SDavid Rees# 3*99e0aae7SDavid Rees# Licensed under the Apache License, Version 2.0 (the "License"); 4*99e0aae7SDavid Rees# you may not use this file except in compliance with the License. 5*99e0aae7SDavid Rees# You may obtain a copy of the License at 6*99e0aae7SDavid Rees# 7*99e0aae7SDavid Rees# https://www.apache.org/licenses/LICENSE-2.0 8*99e0aae7SDavid Rees# 9*99e0aae7SDavid Rees# Unless required by applicable law or agreed to in writing, software 10*99e0aae7SDavid Rees# distributed under the License is distributed on an "AS IS" BASIS, 11*99e0aae7SDavid Rees# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*99e0aae7SDavid Rees# See the License for the specific language governing permissions and 13*99e0aae7SDavid Rees# limitations under the License. 14*99e0aae7SDavid Rees 15*99e0aae7SDavid Rees-- Formatting of virtual fields, mixed in with nonvirtual fields. 16*99e0aae7SDavid Rees 17*99e0aae7SDavid Reesenum Values: 18*99e0aae7SDavid Rees FOO = 1 19*99e0aae7SDavid Rees BAR = 2 20*99e0aae7SDavid Rees 21*99e0aae7SDavid Reesstruct Foo: 22*99e0aae7SDavid Rees let important_constant = Values.FOO# comm 23*99e0aae7SDavid Rees 0 [+1]UInt len # comment 24*99e0aae7SDavid Rees # comment comment comment 25*99e0aae7SDavid Rees 1[+2] LongTypeName long_value_name # comment? 26*99e0aae7SDavid Rees let s = len - 2 27*99e0aae7SDavid Rees if($size_in_bytes )> 10 : 28*99e0aae7SDavid Rees 2[+s] SubMessage submessage 29*99e0aae7SDavid Rees let truth=Bar . top 30*99e0aae7SDavid Rees if Bar .$max_size_in_bits < 2: 31*99e0aae7SDavid Rees Bar. $min_size_in_bits [+1] Int x 32*99e0aae7SDavid Rees 33*99e0aae7SDavid Reesbits Bar: 34*99e0aae7SDavid Rees let top = true 35*99e0aae7SDavid Rees 0 [+1]Flag allowed 36*99e0aae7SDavid Rees if $size_in_bits>10: 37*99e0aae7SDavid Rees let s = 100 38*99e0aae7SDavid Rees 2[+s] SubMessage submessage 39*99e0aae7SDavid Rees if Foo .$max_size_in_bytes < 2: 40*99e0aae7SDavid Rees Foo. $min_size_in_bytes [+1] Int x 41