thrift/test/ConstantsDemo.thrift
Jens Geyer 5ec2121cf2 THRIFT-233 IDL doesn't support negative hex literals
Client: Compiler general
Patch: mreve <aadymek@gmail.com>

This closes #461

Update hexconstant regex in thriftl.ll
As it is now, the parser doesn't allow hex constant values to be negative (it throws a 'bad syntax' error).The change updates the regex and the part that parses the hex value from the string read from the IDL file to support negative values.

Add test to ConstantsDemo.thrift
Before the change, "make install" would break with negative hex constant in ConstantsDemo.thrift. Now it compiles.
2015-04-26 17:47:43 +02:00

72 lines
1.9 KiB
Thrift

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
namespace cpp yozone
struct thing {
1: i32 hello,
2: i32 goodbye
}
enum enumconstants {
ONE = 1,
TWO = 2
}
// struct thing2 {
// /** standard docstring */
// 1: enumconstants val = TWO
// }
typedef i32 myIntType
const myIntType myInt = 3
//const map<enumconstants,string> GEN_ENUM_NAMES = {ONE : "HOWDY", TWO: "PARTNER"}
const i32 hex_const = 0x0001F
const i32 negative_hex_constant = -0x0001F
const i32 GEN_ME = -3523553
const double GEn_DUB = 325.532
const double GEn_DU = 085.2355
const string GEN_STRING = "asldkjasfd"
const map<i32,i32> GEN_MAP = { 35532 : 233, 43523 : 853 }
const list<i32> GEN_LIST = [ 235235, 23598352, 3253523 ]
const map<i32, map<i32, i32>> GEN_MAPMAP = { 235 : { 532 : 53255, 235:235}}
const map<string,i32> GEN_MAP2 = { "hello" : 233, "lkj98d" : 853, 'lkjsdf' : 098325 }
const thing GEN_THING = { 'hello' : 325, 'goodbye' : 325352 }
const map<i32,thing> GEN_WHAT = { 35 : { 'hello' : 325, 'goodbye' : 325352 } }
const set<i32> GEN_SET = [ 235, 235, 53235 ]
exception Blah {
1: i32 bing }
exception Gak {}
service yowza {
void blingity(),
i32 blangity() throws (1: Blah hoot )
}