Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1752627
  • 博文数量: 335
  • 博客积分: 4690
  • 博客等级: 上校
  • 技术积分: 4341
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 21:38
个人简介

无聊之人--除了技术,还是技术,你懂得

文章分类

全部博文(335)

文章存档

2016年(29)

2015年(18)

2014年(7)

2013年(86)

2012年(90)

2011年(105)

分类: Python/Ruby

2012-03-27 23:23:30

前面对reXX进行了简单的介绍,下面谈点相对比较深入的东西
external   data  queue   对应我们已知的栈
pull,push,queue
pull  取数据,从栈顶
push  压入数据从栈顶
queue  压入数据从栈底部
如果当前的EXTERNAL  DATA  QUEUE没有数据可取的话,在TSO/E环境,PULL会从一下设备获取数据:
terminal  (TSO/E  foreground )
Input  stream  (systsin(TSO/E  background )
使用的方式为:
 newstack
push xx
push xx
queue  xx
pull   x
pull  b
delstack
address  就是对应一个指令的运行环境,或是解释器环境
address    environment_name
address  value  exvironmentEXpression
address
address  environment commandEXp(一次有效的环境)

interpret  expression
把express的值当做源代码来执行,提供了一种构造动态命令的方式
  a="say     b"
  b=" say   hello world"
interpret  a b  
output   b  hello world

指令upper  将表达式转换成大写形式
UPPER  VARIABLELIST
字符串解析(重点掌握内容)
语法如下:
PARSE  [UPPER] VALUETOPARSE [TEMPLATE]
VALUETOPARSE 的形式有:
arg                     *
external
numeric
pull
source
value  [expression ] with          *
var variable                  *
version 
带星号的为常用的形式
template  字符串拆分的模板,和我们通常说所的匹配模式有点类似
语法形式:
varlist  division_pattern  varlist  division_pattern
拆分是按照从左至右拆分,默认的分隔符为空格
处理的步骤如下:
按照template的pattern把源字符parse一个个子字符串,如果有多个pattern,则从左至右parse
对每个字符串parse into words操作,这一步将上一步产分的子字符串放到不同的变量列表中
其中divisionpattern不会被保留
举例说明
parse  value "abc.ef.com"    with  a "."  b ".com"
拆分步骤:
使用第一个dot 将字符串parse  abc ef.com
a=abc
第二步   使用第二个.com 将 ef.com parse成  ef   
b=ef  
因此结果为
a=abc
b=ef
在template中使用comma时需要注意,她仅对arg有效,其他的情况下, 从第二个template开始,所有template都被赋予空值
 parse value "abc.ef.com"  with  a ',' b ',' c
a=abc
b=ef
c=com
parse  value "abc.ef.com"  with a,b,c
a=abc.ef.com
b=
c=
在着可以用(.) 用作占位符
如:
  parse  value "a b cd"  a b c 
a=a
b=b
c=cd
parse value "a b cd" a . c
a=a
c=cd
好处是节省变量空间

rexx在解释命令时,如果一个token后没有=也没有:,则reXX会认为该命令为外部命令(address 除外)



阅读(2210) | 评论(0) | 转发(0) |
0

上一篇:DB2 utility--load

下一篇:c15-9---coprocess

给主人留下些什么吧!~~