Structures?

new topic     » topic index » view thread      » older message » newer message

Has everyone lost there intrest in structures?
The following code works but is yet to be completed.
I won't complete it if I don't see any intrest in it.

    Lucius L. Hilley III

--Program name is "struct.ex"
--without type_check
--with trace

--trace(1)

sequence s_names, s_fields, s_data, s_var
sequence s_var_struct
s_names = {}
s_fields = {}
s_data = {}
s_var = {}
s_var_struct = {}

----function "Lucius L. Hilley III"()
global procedure struct(sequence structure, sequence fields)
  sequence msg

  if find(structure, s_names) then
    msg = "Attempt to redefine struct: " & structure & 10
    msg = msg & "\t for detailed information view ex.err"
    machine_proc(37, msg)
    ? 1/0
  else
    s_names = append(s_names, structure)
    s_fields = append(s_fields, fields)
  end if
end procedure
-------------------------------------------------------
global procedure assign(sequence var, object data)
  integer f, name, field

  f = find('.', var)
  if f then
    name = find(var[1..f-1], s_var)
    field = find(var[f+1..length(var)], s_fields[s_var_struct[name]])
    s_data[name][field] = data
  else
    name = find(var, s_var)
    s_data[name][1..length(s_data[name])] = data
  end if
end procedure
-------------------------------------------------------
global function value_of(sequence var)
  integer f, name, field

  f = find('.', var)
  if f then
    name = find(var[1..f-1], s_var)
    field = find(var[f+1..length(var)], s_fields[s_var_struct[name]])
    return s_data[name][field]
  else
    name = find(var, s_var)
    return s_data[name]
  end if
end function
-------------------------------------------------------
global procedure init_var(sequence var, sequence structure)
  integer f
  sequence msg

  if find(var, s_var) then
    msg = "Attempt to redefine var: " & var & 10
    msg = msg & "\t for detailed information view ex.err"
    machine_proc(37, msg)
    ? 1/0
  else
    f = find(structure, s_names)
    if f = 0 then
      msg = "Structure " & structure & " not defined." & 10
      msg = msg & "\t for detailed information view ex.err"
      machine_proc(37, msg)
      ? 1/0
    end if
    s_var = append(s_var, var)
    s_var_struct = append(s_var_struct, find(structure, s_names))
    s_data = append(s_data, repeat(0, length(s_fields[f])))
  end if
end procedure
-------------------------------------------------------
global procedure del_var(sequence var)
  integer f, l

  f = find(var, s_var)
  if f then
    l = length(s_var)
    s_var = s_var[1..f-1] & s_var[f+1..l]
    s_data = s_data[1..f-1] & s_data[f+1..l]
    s_var_struct = s_var_struct[1..f-1] & s_var_struct[f+1..l]
  end if
end procedure
-------------------------------------------------------

struct("employee", {"name", "wage"})
struct("animal", {"name", "birthyear", "sex"})

init_var("cat", "animal")
init_var("dog", "animal")
assign("cat", {"Ki Ki", 1998, "male"})

assign("dog.name", "Sierra")
assign("dog.birthyear", 0)
assign("dog.sex", "female")

puts(1, value_of("cat.name")) puts(1, 10)
? value_of("cat.birthyear")
puts(1, value_of("cat.sex")) puts(1, {10, 10})

puts(1, value_of("dog.name")) puts(1, 10)
? value_of("dog.birthyear")
puts(1, value_of("dog.sex")) puts(1, {10, 10})

? value_of("cat")

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu