X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fexpressions%2Fgenerate.pl;h=c8fdf4c1d3b7e265412686310946040147b1f698;hb=fd308174a81b1702426720536acd3aa4a3021801;hp=6eab24365d624174523872fa6b7e3a01bdc096cc;hpb=244ade48f9c233532cc535d3233fdef53bf9266b;p=pspp diff --git a/src/language/expressions/generate.pl b/src/language/expressions/generate.pl index 6eab24365d..c8fdf4c1d3 100644 --- a/src/language/expressions/generate.pl +++ b/src/language/expressions/generate.pl @@ -16,7 +16,7 @@ init_all_types (); # Parse input file. our (%ops); -our (@funcs, @opers); +our (@funcs, @opers, @order); parse_input (); # Produce output. @@ -66,7 +66,7 @@ our ($toktype); sub init_all_types { # Common user-visible types used throughout evaluation trees. init_type ('number', 'any', C_TYPE => 'double', - ATOM => 'number', MANGLE => 'n', HUMAN_NAME => 'num', + ATOM => 'number', MANGLE => 'n', HUMAN_NAME => 'number', STACK => 'ns', MISSING_VALUE => 'SYSMIS'); init_type ('string', 'any', C_TYPE => 'struct substring', ATOM => 'string', MANGLE => 's', HUMAN_NAME => 'string', @@ -99,6 +99,9 @@ sub init_all_types { init_type ('str_var', 'leaf', C_TYPE => 'const struct variable *', ATOM => 'variable', MANGLE => 'Vs', HUMAN_NAME => 'string_variable'); + init_type ('var', 'leaf', C_TYPE => 'const struct variable *', + ATOM => 'variable', MANGLE => 'V', + HUMAN_NAME => 'variable'); # Vectors. init_type ('vector', 'leaf', C_TYPE => 'const struct vector *', @@ -245,6 +248,8 @@ sub parse_input { $op{ABSORB_MISS} = 1; } elsif (match ('perm_only')) { $op{PERM_ONLY} = 1; + } elsif (match ('no_abbrev')) { + $op{NO_ABBREV} = 1; } else { last; } @@ -375,7 +380,7 @@ sub parse_input { $ops{$a}->{OPNAME} cmp $ops{$b}->{OPNAME}} @funcs; @opers = sort {$ops{$a}->{NAME} cmp $ops{$b}->{NAME}} @opers; - our (@order) = (@funcs, @opers); + @order = (@funcs, @opers); } # Reads the next token into $token, $toktype.